[INFO] cloning repository https://github.com/oakoss/linesmith
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/oakoss/linesmith" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foakoss%2Flinesmith", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foakoss%2Flinesmith'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2ce2f3016e43b4289322c6242decd2b5a49081ef
[INFO] testing oakoss/linesmith against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foakoss%2Flinesmith" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/oakoss/linesmith
[INFO] finished tweaking git repo https://github.com/oakoss/linesmith
[INFO] tweaked toml for git repo https://github.com/oakoss/linesmith written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/oakoss/linesmith on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/oakoss/linesmith already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded supports-hyperlinks v3.2.0
[INFO] [stderr]   Downloaded supports-color v3.0.2
[INFO] [stderr]   Downloaded thin-vec v0.2.18
[INFO] [stderr]   Downloaded rhai_codegen v3.1.0
[INFO] [stderr]   Downloaded gix-trace v0.1.19
[INFO] [stderr]   Downloaded gix-utils v0.3.2
[INFO] [stderr]   Downloaded gix-config-value v0.18.0
[INFO] [stderr]   Downloaded unicode-bom v2.0.3
[INFO] [stderr]   Downloaded gix-ignore v0.21.0
[INFO] [stderr]   Downloaded gix-hashtable v0.15.0
[INFO] [stderr]   Downloaded gix-chunk v0.7.1
[INFO] [stderr]   Downloaded gix-quote v0.7.1
[INFO] [stderr]   Downloaded gix-glob v0.26.0
[INFO] [stderr]   Downloaded gix-actor v0.41.0
[INFO] [stderr]   Downloaded gix-validate v0.11.1
[INFO] [stderr]   Downloaded gix-command v0.9.0
[INFO] [stderr]   Downloaded io-close v0.3.7
[INFO] [stderr]   Downloaded gix-lock v23.0.0
[INFO] [stderr]   Downloaded gix-sec v0.14.0
[INFO] [stderr]   Downloaded gix-bitmap v0.3.1
[INFO] [stderr]   Downloaded uluru v3.1.0
[INFO] [stderr]   Downloaded gix-negotiate v0.31.0
[INFO] [stderr]   Downloaded nonempty v0.12.0
[INFO] [stderr]   Downloaded faster-hex v0.10.0
[INFO] [stderr]   Downloaded gix-error v0.2.3
[INFO] [stderr]   Downloaded gix-commitgraph v0.37.0
[INFO] [stderr]   Downloaded gix-fs v0.21.1
[INFO] [stderr]   Downloaded gix-traverse v0.57.0
[INFO] [stderr]   Downloaded gix-revwalk v0.31.0
[INFO] [stderr]   Downloaded gix-hash v0.25.0
[INFO] [stderr]   Downloaded gix-date v0.15.3
[INFO] [stderr]   Downloaded gix-attributes v0.33.0
[INFO] [stderr]   Downloaded gix-worktree v0.52.0
[INFO] [stderr]   Downloaded gix-shallow v0.12.0
[INFO] [stderr]   Downloaded gix-worktree-stream v0.32.0
[INFO] [stderr]   Downloaded gix-packetline v0.21.3
[INFO] [stderr]   Downloaded gix-submodule v0.30.0
[INFO] [stderr]   Downloaded clru v0.6.3
[INFO] [stderr]   Downloaded gix-refspec v0.41.0
[INFO] [stderr]   Downloaded gix-url v0.36.0
[INFO] [stderr]   Downloaded gix-discover v0.51.0
[INFO] [stderr]   Downloaded maybe-async v0.2.10
[INFO] [stderr]   Downloaded gix-tempfile v23.0.0
[INFO] [stderr]   Downloaded gix-revision v0.45.0
[INFO] [stderr]   Downloaded gix-archive v0.32.0
[INFO] [stderr]   Downloaded lexopt v0.3.2
[INFO] [stderr]   Downloaded gix-features v0.48.0
[INFO] [stderr]   Downloaded gix-path v0.12.0
[INFO] [stderr]   Downloaded gix-worktree-state v0.30.0
[INFO] [stderr]   Downloaded gix-pathspec v0.18.0
[INFO] [stderr]   Downloaded gix-imara-diff v0.2.1
[INFO] [stderr]   Downloaded gix-dir v0.25.0
[INFO] [stderr]   Downloaded gix-blame v0.13.0
[INFO] [stderr]   Downloaded gix-status v0.30.0
[INFO] [stderr]   Downloaded gix-object v0.60.0
[INFO] [stderr]   Downloaded gix-odb v0.80.0
[INFO] [stderr]   Downloaded portable-atomic-util v0.2.7
[INFO] [stderr]   Downloaded jiff-tzdb v0.1.6
[INFO] [stderr]   Downloaded gix-filter v0.30.0
[INFO] [stderr]   Downloaded gix-index v0.51.0
[INFO] [stderr]   Downloaded gix-diff v0.63.0
[INFO] [stderr]   Downloaded gix-protocol v0.61.0
[INFO] [stderr]   Downloaded gix-transport v0.57.0
[INFO] [stderr]   Downloaded gix-ref v0.63.0
[INFO] [stderr]   Downloaded jiff-static v0.2.24
[INFO] [stderr]   Downloaded prodash v31.0.0
[INFO] [stderr]   Downloaded gix-config v0.56.0
[INFO] [stderr]   Downloaded gix-merge v0.16.0
[INFO] [stderr]   Downloaded gix-pack v0.70.0
[INFO] [stderr]   Downloaded catppuccin v2.8.0
[INFO] [stderr]   Downloaded rhai v1.24.0
[INFO] [stderr]   Downloaded gix v0.83.0
[INFO] [stderr]   Downloaded jiff v0.2.24
[INFO] [stderr]   Downloaded sha1-checked v0.10.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c76b6c0e1d0e58663e003e610bd92e650b98c6e90e17966df397782e88f27b2c
[INFO] running `Command { std: "docker" "start" "-a" "c76b6c0e1d0e58663e003e610bd92e650b98c6e90e17966df397782e88f27b2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c76b6c0e1d0e58663e003e610bd92e650b98c6e90e17966df397782e88f27b2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c76b6c0e1d0e58663e003e610bd92e650b98c6e90e17966df397782e88f27b2c", kill_on_drop: false }`
[INFO] [stdout] c76b6c0e1d0e58663e003e610bd92e650b98c6e90e17966df397782e88f27b2c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] deefa7c8d49cbe588e6b9387dc380c0a7905f4319504cf9d3911db1f8fcfeaff
[INFO] running `Command { std: "docker" "start" "-a" "deefa7c8d49cbe588e6b9387dc380c0a7905f4319504cf9d3911db1f8fcfeaff", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling gix-trace v0.1.19
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling zlib-rs v0.6.3
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling faster-hex v0.10.0
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling jiff v0.2.24
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling gix-validate v0.11.1
[INFO] [stderr]    Compiling gix-utils v0.3.2
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling gix-error v0.2.3
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling memmap2 v0.9.10
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling prodash v31.0.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling sha1-checked v0.10.0
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling gix-chunk v0.7.1
[INFO] [stderr]    Compiling nonempty v0.12.0
[INFO] [stderr]    Compiling gix-quote v0.7.1
[INFO] [stderr]    Compiling unicode-bom v2.0.3
[INFO] [stderr]    Compiling kstring v2.0.2
[INFO] [stderr]    Compiling gix-sec v0.14.0
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling gix-bitmap v0.3.1
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling smartstring v1.0.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling const-random v0.1.18
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling uluru v3.1.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling gix-date v0.15.3
[INFO] [stderr]    Compiling clru v0.6.3
[INFO] [stderr]    Compiling gix-imara-diff v0.2.1
[INFO] [stderr]    Compiling gix-actor v0.41.0
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling gix-path v0.12.0
[INFO] [stderr]    Compiling gix-packetline v0.21.3
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling gix-features v0.48.0
[INFO] [stderr]    Compiling gix-config-value v0.18.0
[INFO] [stderr]    Compiling gix-command v0.9.0
[INFO] [stderr]    Compiling gix-hash v0.25.0
[INFO] [stderr]    Compiling gix-fs v0.21.1
[INFO] [stderr]    Compiling gix-glob v0.26.0
[INFO] [stderr]    Compiling gix-hashtable v0.15.0
[INFO] [stderr]    Compiling gix-object v0.60.0
[INFO] [stderr]    Compiling gix-tempfile v23.0.0
[INFO] [stderr]    Compiling gix-commitgraph v0.37.0
[INFO] [stderr]    Compiling gix-lock v23.0.0
[INFO] [stderr]    Compiling gix-attributes v0.33.0
[INFO] [stderr]    Compiling gix-ignore v0.21.0
[INFO] [stderr]    Compiling gix-url v0.36.0
[INFO] [stderr]    Compiling gix-shallow v0.12.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling gix-revwalk v0.31.0
[INFO] [stderr]    Compiling gix-ref v0.63.0
[INFO] [stderr]    Compiling gix-traverse v0.57.0
[INFO] [stderr]    Compiling gix-pathspec v0.18.0
[INFO] [stderr]    Compiling gix-revision v0.45.0
[INFO] [stderr]    Compiling gix-index v0.51.0
[INFO] [stderr]    Compiling gix-filter v0.30.0
[INFO] [stderr]    Compiling catppuccin v2.8.0
[INFO] [stderr]    Compiling gix-pack v0.70.0
[INFO] [stderr]    Compiling gix-transport v0.57.0
[INFO] [stderr]    Compiling maybe-async v0.2.10
[INFO] [stderr]    Compiling gix-discover v0.51.0
[INFO] [stderr]    Compiling gix-config v0.56.0
[INFO] [stderr]    Compiling gix-refspec v0.41.0
[INFO] [stderr]    Compiling rhai_codegen v3.1.0
[INFO] [stderr]    Compiling gix-worktree v0.52.0
[INFO] [stderr]    Compiling gix-dir v0.25.0
[INFO] [stderr]    Compiling gix-diff v0.63.0
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling arc-swap v1.9.1
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling winnow v1.0.2
[INFO] [stderr]    Compiling thin-vec v0.2.18
[INFO] [stderr]    Compiling ureq-proto v0.6.0
[INFO] [stderr]    Compiling gix-submodule v0.30.0
[INFO] [stderr]    Compiling rhai v1.24.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling gix-status v0.30.0
[INFO] [stderr]    Compiling gix-odb v0.80.0
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling gix-protocol v0.61.0
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling is_ci v1.2.0
[INFO] [stderr]    Compiling supports-color v3.0.2
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling gix v0.83.0
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling terminal_size v0.4.4
[INFO] [stderr]    Compiling supports-hyperlinks v3.2.0
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling dialoguer v0.12.0
[INFO] [stderr]    Compiling lexopt v0.3.2
[INFO] [stderr]    Compiling ureq v3.3.0
[INFO] [stderr]    Compiling linesmith-plugin v0.1.2 (/opt/rustwide/workdir/crates/linesmith-plugin)
[INFO] [stderr]    Compiling linesmith-core v0.1.2 (/opt/rustwide/workdir/crates/linesmith-core)
[INFO] [stderr]    Compiling linesmith v0.1.2 (/opt/rustwide/workdir/crates/linesmith)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 13s
[INFO] running `Command { std: "docker" "inspect" "deefa7c8d49cbe588e6b9387dc380c0a7905f4319504cf9d3911db1f8fcfeaff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "deefa7c8d49cbe588e6b9387dc380c0a7905f4319504cf9d3911db1f8fcfeaff", kill_on_drop: false }`
[INFO] [stdout] deefa7c8d49cbe588e6b9387dc380c0a7905f4319504cf9d3911db1f8fcfeaff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8dd607ec7bf6fc5e02d383d35c7e97ce0f6237c57fdcf8d7c929769ff3ebed78
[INFO] running `Command { std: "docker" "start" "-a" "8dd607ec7bf6fc5e02d383d35c7e97ce0f6237c57fdcf8d7c929769ff3ebed78", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling catppuccin v2.8.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling gix-validate v0.11.1
[INFO] [stderr]    Compiling gix-utils v0.3.2
[INFO] [stderr]    Compiling gix-error v0.2.3
[INFO] [stderr]    Compiling gix-packetline v0.21.3
[INFO] [stderr]    Compiling gix-imara-diff v0.2.1
[INFO] [stderr]    Compiling gix-path v0.12.0
[INFO] [stderr]    Compiling gix-date v0.15.3
[INFO] [stderr]    Compiling gix-chunk v0.7.1
[INFO] [stderr]    Compiling gix-quote v0.7.1
[INFO] [stderr]    Compiling gix-bitmap v0.3.1
[INFO] [stderr]    Compiling gix-features v0.48.0
[INFO] [stderr]    Compiling gix-config-value v0.18.0
[INFO] [stderr]    Compiling gix-command v0.9.0
[INFO] [stderr]    Compiling gix-actor v0.41.0
[INFO] [stderr]    Compiling gix-url v0.36.0
[INFO] [stderr]    Compiling gix-hash v0.25.0
[INFO] [stderr]    Compiling gix-fs v0.21.1
[INFO] [stderr]    Compiling gix-glob v0.26.0
[INFO] [stderr]    Compiling gix-transport v0.57.0
[INFO] [stderr]    Compiling gix-hashtable v0.15.0
[INFO] [stderr]    Compiling gix-commitgraph v0.37.0
[INFO] [stderr]    Compiling gix-tempfile v23.0.0
[INFO] [stderr]    Compiling gix-object v0.60.0
[INFO] [stderr]    Compiling gix-attributes v0.33.0
[INFO] [stderr]    Compiling gix-ignore v0.21.0
[INFO] [stderr]    Compiling gix-lock v23.0.0
[INFO] [stderr]    Compiling gix-shallow v0.12.0
[INFO] [stderr]    Compiling gix-pathspec v0.18.0
[INFO] [stderr]    Compiling gix-revwalk v0.31.0
[INFO] [stderr]    Compiling gix-ref v0.63.0
[INFO] [stderr]    Compiling gix-filter v0.30.0
[INFO] [stderr]    Compiling gix-pack v0.70.0
[INFO] [stderr]    Compiling gix-traverse v0.57.0
[INFO] [stderr]    Compiling gix-revision v0.45.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling gix-index v0.51.0
[INFO] [stderr]    Compiling rhai v1.24.0
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling gix-refspec v0.41.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling gix-discover v0.51.0
[INFO] [stderr]    Compiling gix-config v0.56.0
[INFO] [stderr]    Compiling gix-odb v0.80.0
[INFO] [stderr]    Compiling gix-worktree v0.52.0
[INFO] [stderr]    Compiling gix-protocol v0.61.0
[INFO] [stderr]    Compiling gix-dir v0.25.0
[INFO] [stderr]    Compiling gix-diff v0.63.0
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling gix-submodule v0.30.0
[INFO] [stderr]    Compiling gix-status v0.30.0
[INFO] [stderr]    Compiling gix v0.83.0
[INFO] [stderr]    Compiling linesmith-plugin v0.1.2 (/opt/rustwide/workdir/crates/linesmith-plugin)
[INFO] [stderr]    Compiling linesmith-core v0.1.2 (/opt/rustwide/workdir/crates/linesmith-core)
[INFO] [stderr]    Compiling linesmith v0.1.2 (/opt/rustwide/workdir/crates/linesmith)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 34s
[INFO] running `Command { std: "docker" "inspect" "8dd607ec7bf6fc5e02d383d35c7e97ce0f6237c57fdcf8d7c929769ff3ebed78", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8dd607ec7bf6fc5e02d383d35c7e97ce0f6237c57fdcf8d7c929769ff3ebed78", kill_on_drop: false }`
[INFO] [stdout] 8dd607ec7bf6fc5e02d383d35c7e97ce0f6237c57fdcf8d7c929769ff3ebed78
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4cded2c781aac574cc7a123718946ead84cf53ed5f4e6b5d5caef140969dffc4
[INFO] running `Command { std: "docker" "start" "-a" "4cded2c781aac574cc7a123718946ead84cf53ed5f4e6b5d5caef140969dffc4", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/linesmith-8212d5cc730c51bb)
[INFO] [stdout] 
[INFO] [stdout] running 363 tests
[INFO] [stdout] test cli::tests::conflicting_color_flags_last_wins ... ok
[INFO] [stdout] test cli::tests::color_overrides_rejected_on_doctor ... ok
[INFO] [stdout] test cli::tests::doctor_plain_before_subcommand_also_parses ... ok
[INFO] [stdout] test cli::tests::doctor_subcommand_parses_plain_flag ... ok
[INFO] [stdout] test cli::tests::doctor_subcommand_parses_with_no_flags ... ok
[INFO] [stdout] test cli::tests::doctor_threads_config_flag_into_action ... ok
[INFO] [stdout] test cli::tests::check_config_composes_with_config_path ... ok
[INFO] [stdout] test cli::tests::config_short_flag_captures_path ... ok
[INFO] [stdout] test cli::tests::doctor_with_extra_positional_errors ... ok
[INFO] [stdout] test cli::tests::empty_args_returns_run_with_defaults ... ok
[INFO] [stdout] test cli::tests::empty_config_value_is_rejected ... ok
[INFO] [stdout] test cli::tests::force_color_flag_sets_always_override ... ok
[INFO] [stdout] test cli::tests::equals_style_config_value_parses ... ok
[INFO] [stdout] test cli::tests::force_flag_rejected_outside_presets_apply ... ok
[INFO] [stdout] test cli::tests::help_short_and_long_return_help_action ... ok
[INFO] [stdout] test cli::tests::init_no_doctor_before_subcommand_also_parses ... ok
[INFO] [stdout] test cli::tests::init_no_doctor_flag_sets_field ... ok
[INFO] [stdout] test cli::tests::init_rejects_force_flag ... ok
[INFO] [stdout] test cli::tests::config_flag_captures_path ... ok
[INFO] [stdout] test cli::tests::init_subcommand_parses_with_no_config_override ... ok
[INFO] [stdout] test cli::tests::init_with_extra_positional_errors ... ok
[INFO] [stdout] test cli::tests::no_color_flag_sets_never_override ... ok
[INFO] [stdout] test cli::tests::config_without_value_returns_error ... ok
[INFO] [stdout] test cli::tests::no_doctor_flag_rejected_outside_init ... ok
[INFO] [stdout] test cli::tests::doctor_combines_config_and_plain ... ok
[INFO] [stdout] test cli::tests::check_config_flag_sets_bool ... ok
[INFO] [stdout] test cli::tests::presets_apply_empty_string_name_still_parses_as_apply ... ok
[INFO] [stdout] test cli::tests::presets_apply_with_extra_positional_errors ... ok
[INFO] [stdout] test cli::tests::plain_flag_rejected_outside_doctor ... ok
[INFO] [stdout] test cli::tests::presets_apply_force_before_subcommand_also_parses ... ok
[INFO] [stdout] test cli::tests::presets_apply_subcommand_parses_name ... ok
[INFO] [stdout] test cli::tests::presets_apply_with_force_flag_sets_force ... ok
[INFO] [stdout] test cli::tests::presets_apply_threads_config_flag_into_action ... ok
[INFO] [stdout] test cli::tests::presets_apply_without_name_errors ... ok
[INFO] [stdout] test cli::tests::themes_list_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::presets_list_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::presets_with_unknown_subcommand_errors ... ok
[INFO] [stdout] test cli::tests::themes_with_unknown_subcommand_errors ... ok
[INFO] [stdout] test cli::tests::unknown_top_level_subcommand_errors ... ok
[INFO] [stdout] test cli::tests::version_short_and_long_return_version_action ... ok
[INFO] [stdout] test cli::tests::themes_without_subcommand_errors ... ok
[INFO] [stdout] test cli::tests::unknown_flag_returns_error ... ok
[INFO] [stdout] test doctor::tests::any_git_segment_enabled_returns_false_when_unloaded ... ok
[INFO] [stdout] test cli::tests::presets_without_subcommand_errors ... ok
[INFO] [stdout] test doctor::tests::ascii_glyphs_contain_no_unicode ... ok
[INFO] [stdout] test doctor::tests::any_git_segment_enabled_finds_id_in_main_line ... ok
[INFO] [stdout] test doctor::tests::any_git_segment_enabled_finds_id_in_numbered_line ... ok
[INFO] [stdout] test doctor::tests::any_git_segment_enabled_ignores_plugin_namespace_collisions ... ok
[INFO] [stdout] test doctor::tests::any_git_segment_enabled_returns_false_for_no_git_config ... ok
[INFO] [stdout] test doctor::tests::any_git_segment_enabled_handles_malformed_numbered_line_tables ... ok
[INFO] [stdout] test doctor::tests::cache_dir_warns_when_path_is_a_file_not_a_directory ... ok
[INFO] [stdout] test doctor::tests::cache_category_with_healthy_snapshot_passes_all_three ... ok
[INFO] [stdout] test doctor::tests::cache_dir_passes_when_absent_with_creatable_hint ... ok
[INFO] [stdout] test doctor::tests::cache_dir_warns_when_unreadable_with_io_message ... ok
[INFO] [stdout] test doctor::tests::binary_path_resolves_passes ... ok
[INFO] [stdout] test doctor::tests::cache_dir_check_never_produces_fail_severity_for_any_variant ... ok
[INFO] [stdout] test doctor::tests::cache_dir_warns_when_absent_parent_read_only ... ok
[INFO] [stdout] test doctor::tests::binary_path_failure_preserves_io_error_in_label ... ok
[INFO] [stdout] test doctor::tests::cache_lock_active_passes ... ok
[INFO] [stdout] test doctor::tests::cache_lock_warns_on_unreadable ... ok
[INFO] [stdout] test doctor::tests::cache_skips_all_three_when_unresolved ... ok
[INFO] [stdout] test doctor::tests::cache_usage_json_warns_on_future_timestamp ... ok
[INFO] [stdout] test doctor::tests::cache_lock_warns_when_stale ... ok
[INFO] [stdout] test doctor::tests::cache_usage_json_warns_on_stale_schema ... ok
[INFO] [stdout] test doctor::tests::cache_usage_json_warns_on_unreadable_distinct_from_stale ... ok
[INFO] [stdout] test doctor::tests::check_claude_json_too_large_renders_fail_with_corruption_hint ... ok
[INFO] [stdout] test doctor::tests::check_result_constructors_round_trip_id_and_severity ... ok
[INFO] [stdout] test doctor::tests::classify_endpoint_response_maps_3xx_to_transport_error ... ok
[INFO] [stdout] test doctor::tests::classify_endpoint_response_maps_401_to_bad_status ... ok
[INFO] [stdout] test doctor::tests::check_ids_follow_namespacing_convention ... ok
[INFO] [stdout] test cli::tests::init_threads_config_flag_into_action ... ok
[INFO] [stdout] test doctor::tests::classify_endpoint_response_maps_5xx_to_transport_error ... ok
[INFO] [stdout] test doctor::tests::classify_endpoint_response_at_2s_boundary_classifies_as_slow ... ok
[INFO] [stdout] test doctor::tests::classify_endpoint_response_maps_io_error_to_transport_error ... ok
[INFO] [stdout] test doctor::tests::check_plugins_compile_fails_loud_on_unexpected_variants ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_clamps_serde_error_to_one_line_under_200_chars ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_handles_u32_overflow_in_remote_major ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_inner_returns_transport_error_when_body_truncated ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_handles_leading_zeros_as_equal ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_returns_latest_when_local_is_newer ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_caps_remote_tag_at_64_chars ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_returns_latest_when_both_unparseable_and_equal ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_returns_latest_when_tag_matches_local ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_returns_newer_when_remote_is_higher ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_returns_newer_when_both_unparseable_and_unequal ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_returns_parse_error_on_invalid_json ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_returns_parse_error_when_local_version_invalid ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_returns_parse_error_when_remote_unparseable_but_local_parses ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_returns_parse_error_when_tag_name_missing ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_strips_control_chars_from_remote_tag ... ok
[INFO] [stdout] test doctor::tests::classify_update_response_strips_v_prefix_for_comparison ... ok
[INFO] [stdout] test doctor::tests::claude_binary_fail_with_path_unset_hint_when_path_env_unset ... ok
[INFO] [stdout] test doctor::tests::classify_endpoint_response_maps_2xx_with_extra_keys_to_unexpected_shape ... ok
[INFO] [stdout] test doctor::tests::claude_binary_fail_with_path_nonutf8_hint ... ok
[INFO] [stdout] test doctor::tests::claude_binary_fails_when_neither_binary_nor_dir_present ... ok
[INFO] [stdout] test doctor::tests::claude_binary_warns_when_dir_exists_but_path_lookup_fails ... ok
[INFO] [stdout] test doctor::tests::claude_code_category_emits_four_checks_in_spec_order ... ok
[INFO] [stdout] test doctor::tests::claude_binary_warns_when_dir_permission_denied ... ok
[INFO] [stdout] test doctor::tests::claude_binary_warns_when_dir_not_a_directory ... ok
[INFO] [stdout] test doctor::tests::claude_dir_missing_short_circuits_sessions_to_skip ... ok
[INFO] [stdout] test doctor::tests::claude_code_category_with_healthy_snapshot_passes_every_check ... ok
[INFO] [stdout] test doctor::tests::claude_code_category_skips_filesystem_checks_when_home_unresolved ... ok
[INFO] [stdout] test doctor::tests::claude_json_fail_when_missing ... ok
[INFO] [stdout] test doctor::tests::claude_json_fail_on_io_error ... ok
[INFO] [stdout] test doctor::tests::claude_dir_warns_on_not_a_directory ... ok
[INFO] [stdout] test doctor::tests::claude_dir_warns_on_other_io ... ok
[INFO] [stdout] test doctor::tests::claude_dir_warns_on_permission_denied ... ok
[INFO] [stdout] test doctor::tests::claude_sessions_fail_when_directory_missing_but_dir_ok ... ok
[INFO] [stdout] test doctor::tests::claude_json_fail_on_parse_error_carries_message ... ok
[INFO] [stdout] test doctor::tests::claude_json_warn_when_oauth_account_missing ... ok
[INFO] [stdout] test doctor::tests::claude_sessions_skips_when_dir_not_a_directory ... ok
[INFO] [stdout] test doctor::tests::claude_sessions_skips_when_dir_permission_denied ... ok
[INFO] [stdout] test doctor::tests::claude_sessions_warn_on_io_error ... ok
[INFO] [stdout] test doctor::tests::config_category_emits_five_checks_in_spec_order ... ok
[INFO] [stdout] test doctor::tests::config_category_with_default_loaded_config_passes_every_check ... ok
[INFO] [stdout] test doctor::tests::claude_sessions_warn_on_not_a_directory ... ok
[INFO] [stdout] test doctor::tests::claude_sessions_warn_when_directory_empty ... ok
[INFO] [stdout] test doctor::tests::config_discovered_fails_for_explicit_missing ... ok
[INFO] [stdout] test doctor::tests::config_discovered_fails_on_io_error ... ok
[INFO] [stdout] test doctor::tests::config_discovered_warns_for_implicit_missing ... ok
[INFO] [stdout] test doctor::tests::config_plugin_dirs_fail_on_permission_denied ... ok
[INFO] [stdout] test doctor::tests::config_plugin_dirs_pass_when_none_configured ... ok
[INFO] [stdout] test doctor::tests::config_segments_pass_for_plugin_discovered_id ... ok
[INFO] [stdout] test doctor::tests::config_plugin_dirs_pass_when_all_ok ... ok
[INFO] [stdout] test doctor::tests::config_plugin_dirs_warn_on_missing_or_not_directory ... ok
[INFO] [stdout] test doctor::tests::config_segments_pass_when_every_id_is_a_known_built_in ... ok
[INFO] [stdout] test doctor::tests::config_theme_pass_for_user_theme_in_registry ... ok
[INFO] [stdout] test doctor::tests::config_segments_warn_on_malformed_numbered_line_table ... ok
[INFO] [stdout] test doctor::tests::config_segments_warn_on_unknown_id_in_numbered_line_table ... ok
[INFO] [stdout] test doctor::tests::config_segments_warn_on_unknown_id_with_id_in_label ... ok
[INFO] [stdout] test doctor::tests::config_segments_warn_on_line_zero_index ... ok
[INFO] [stdout] test doctor::tests::config_theme_warn_on_unknown_name ... ok
[INFO] [stdout] test doctor::tests::config_theme_pass_when_omitted_or_built_in ... ok
[INFO] [stdout] test doctor::tests::config_runs_when_home_unset_but_explicit_path_loaded ... ok
[INFO] [stdout] test doctor::tests::credentials_empty_token_renders_distinct_label ... ok
[INFO] [stdout] test doctor::tests::config_unresolved_warns_and_skips_downstream ... ok
[INFO] [stdout] test doctor::tests::credentials_io_error_fails_resolvable_passes_source_attested ... ok
[INFO] [stdout] test doctor::tests::credentials_category_with_resolved_credentials_passes_all_four ... ok
[INFO] [stdout] test doctor::tests::credentials_no_credentials_fails_resolvable_and_source ... ok
[INFO] [stdout] test doctor::tests::credentials_scopes_fail_when_user_inference_absent ... ok
[INFO] [stdout] test doctor::tests::credentials_parse_error_passes_source_fails_shape ... ok
[INFO] [stdout] test doctor::tests::credentials_source_attested_label_redacts_token_bytes ... ok
[INFO] [stdout] test doctor::tests::credentials_unresolvable_skips_all_four ... ok
[INFO] [stdout] test doctor::tests::credentials_subprocess_failed_fails_resolvable_and_source ... ok
[INFO] [stdout] test doctor::tests::empty_category_renders_header_with_no_checks ... ok
[INFO] [stdout] test doctor::tests::default_mode_summary_separator_is_middle_dot ... ok
[INFO] [stdout] test doctor::tests::default_mode_emits_unicode_glyphs ... ok
[INFO] [stdout] test doctor::tests::empty_report_renders_summary_and_exits_zero ... ok
[INFO] [stdout] test doctor::tests::endpoint_5xx_warns_keeps_exit_zero ... ok
[INFO] [stdout] test doctor::tests::endpoint_bad_status_fails_with_per_status_hint ... ok
[INFO] [stdout] test doctor::tests::endpoint_category_with_healthy_probe_passes_all_three ... ok
[INFO] [stdout] test doctor::tests::endpoint_parse_error_fails_shape_check ... ok
[INFO] [stdout] test doctor::tests::endpoint_rate_limited_fails_on_abusive_retry_after ... ok
[INFO] [stdout] test doctor::tests::endpoint_rate_limited_warns_when_no_retry_after_header ... ok
[INFO] [stdout] test doctor::tests::endpoint_rate_limited_warns_with_reasonable_retry_after ... ok
[INFO] [stdout] test doctor::tests::endpoint_skips_when_credentials_failed ... ok
[INFO] [stdout] test doctor::tests::endpoint_skips_with_race_reason_when_credentials_vanished ... ok
[INFO] [stdout] test doctor::tests::endpoint_slow_response_warns_with_elapsed ... ok
[INFO] [stdout] test doctor::tests::endpoint_transport_error_warns_keeps_exit_zero ... ok
[INFO] [stdout] test doctor::tests::endpoint_unexpected_shape_warns_with_extra_keys ... ok
[INFO] [stdout] test doctor::tests::env_var_state_nonempty_filters_unset_empty_and_nonutf8 ... ok
[INFO] [stdout] test doctor::tests::exit_code_is_one_on_any_fail ... ok
[INFO] [stdout] test doctor::tests::exit_code_is_zero_when_no_fail_in_mixed_report ... ok
[INFO] [stdout] test doctor::tests::exit_code_is_zero_on_warn_only ... ok
[INFO] [stdout] test doctor::tests::exit_code_is_one_when_fail_mixed_with_other_severities ... ok
[INFO] [stdout] test doctor::tests::config_parse_error_fails_with_line_col ... ok
[INFO] [stdout] test doctor::tests::exit_code_is_zero_on_all_pass ... ok
[INFO] [stdout] test doctor::tests::exit_code_skip_does_not_fail ... ok
[INFO] [stdout] test doctor::tests::credentials_missing_field_renders_distinct_label ... ok
[INFO] [stdout] test doctor::tests::config_parse_error_short_circuits_downstream_checks_to_skip ... ok
[INFO] [stdout] test doctor::tests::git_failed_on_corrupt_repo_renders_message ... ok
[INFO] [stdout] test doctor::tests::git_head_resolves_warns_on_lossy_otherref ... ok
[INFO] [stdout] test doctor::tests::git_not_in_repo_warns_when_git_segment_configured ... ok
[INFO] [stdout] test doctor::tests::git_not_in_repo_skips_all_three_when_no_git_segment_configured ... ok
[INFO] [stdout] test doctor::tests::fail_check_renders_hint_indented_after_fail_line ... ok
[INFO] [stdout] test doctor::tests::git_head_resolves_renders_each_variant_distinctly ... ok
[INFO] [stdout] test doctor::tests::git_repo_detected_passes_when_repo_present ... ok
[INFO] [stdout] test doctor::tests::find_claude_binary_returns_none_when_path_unset ... ok
[INFO] [stdout] test doctor::tests::git_repo_kind_label_includes_worktree_name ... ok
[INFO] [stdout] test doctor::tests::glyphs_within_a_mode_are_pairwise_distinct ... ok
[INFO] [stdout] test doctor::tests::find_claude_binary_skips_non_executable_file ... ok
[INFO] [stdout] test doctor::tests::find_claude_binary_returns_first_path_match ... ok
[INFO] [stdout] test doctor::tests::no_color_set_or_unset_both_pass ... ok
[INFO] [stdout] test doctor::tests::home_non_utf8_fails_with_distinct_hint ... ok
[INFO] [stdout] test doctor::tests::plain_mode_passes_user_supplied_unicode_through_verbatim ... ok
[INFO] [stdout] test doctor::tests::label_and_hint_accessors_return_constructor_inputs ... ok
[INFO] [stdout] test doctor::tests::home_empty_string_fails ... ok
[INFO] [stdout] test doctor::tests::home_unset_fails_and_promotes_exit_code ... ok
[INFO] [stdout] test doctor::tests::healthy_env_produces_only_pass_checks ... ok
[INFO] [stdout] test doctor::tests::plugins_compile_fails_with_path_and_message_in_hint ... ok
[INFO] [stdout] test doctor::tests::plugins_deps_valid_fails_on_unknown_dep ... ok
[INFO] [stdout] test doctor::tests::plugins_deps_valid_fails_on_malformed_header ... ok
[INFO] [stdout] test doctor::tests::plugins_no_builtin_collisions_fails_when_plugin_id_shadows_builtin ... ok
[INFO] [stdout] test doctor::tests::plugins_category_with_no_sources_skips_all_four ... ok
[INFO] [stdout] test doctor::tests::plugins_no_id_collisions_fails_when_two_plugins_share_id ... ok
[INFO] [stdout] test doctor::tests::plugins_category_with_zero_plugins_passes_vacuously ... ok
[INFO] [stdout] test doctor::tests::read_claude_json_parse_error_contains_real_serde_format ... ok
[INFO] [stdout] test doctor::tests::plain_mode_emits_no_unicode ... ok
[INFO] [stdout] test doctor::tests::render_emits_blank_line_between_categories ... ok
[INFO] [stdout] test doctor::tests::plain_mode_summary_separator_is_ascii ... ok
[INFO] [stdout] test doctor::tests::read_claude_json_distinguishes_missing_parse_error_and_no_oauth ... ok
[INFO] [stdout] test doctor::tests::read_claude_json_returns_too_large_above_2mb_cap ... ok
[INFO] [stdout] test doctor::tests::read_config_at_round_trips_a_real_temp_file ... ok
[INFO] [stdout] test doctor::tests::doctor_env_from_process_does_not_panic ... ok
[INFO] [stdout] test doctor::tests::render_includes_summary_and_exit_lines ... ok
[INFO] [stdout] test doctor::tests::render_includes_category_header ... ok
[INFO] [stdout] test doctor::tests::report_categories_run_in_spec_order ... ok
[INFO] [stdout] test doctor::tests::self_binary_integrity_handles_multibyte_sha_without_panicking ... ok
[INFO] [stdout] test doctor::tests::self_binary_integrity_handles_short_sha_without_panicking_and_passes ... ok
[INFO] [stdout] test doctor::tests::self_binary_integrity_passes_when_build_sha_present ... ok
[INFO] [stdout] test doctor::tests::self_binary_integrity_truncates_long_sha_to_seven_chars ... ok
[INFO] [stdout] test doctor::tests::self_binary_integrity_warns_on_empty_sha_same_as_missing ... ok
[INFO] [stdout] test doctor::tests::self_update_available_pass_when_probe_is_latest ... ok
[INFO] [stdout] test doctor::tests::self_update_available_warns_on_parse_error ... ok
[INFO] [stdout] test doctor::tests::self_update_available_warns_on_transport_error ... ok
[INFO] [stdout] test doctor::tests::self_update_available_warns_when_newer_release_exists ... ok
[INFO] [stdout] test doctor::tests::snapshot_claude_home_classifies_real_filesystem_state ... ok
[INFO] [stdout] test doctor::tests::snapshot_credentials_returns_unresolvable_when_no_path_source_non_macos ... ok
[INFO] [stdout] test doctor::tests::source_label_redacts_token_bytes_for_every_credential_source_variant ... ok
[INFO] [stdout] test doctor::tests::stat_cache_root_returns_absent_parent_read_only_when_intermediate_is_a_file ... ok
[INFO] [stdout] test doctor::tests::stat_cache_root_returns_exists_for_a_real_directory ... ok
[INFO] [stdout] test doctor::tests::self_binary_integrity_warns_on_whitespace_only_sha ... ok
[INFO] [stdout] test doctor::tests::self_binary_integrity_warns_when_build_sha_missing ... ok
[INFO] [stdout] test doctor::tests::self_version_check_includes_crate_version ... ok
[INFO] [stdout] test doctor::tests::stat_claude_sessions_reports_empty_when_only_dotfiles ... ok
[INFO] [stdout] test doctor::tests::stat_cache_root_returns_not_a_directory_when_path_is_a_file ... ok
[INFO] [stdout] test doctor::tests::stat_claude_sessions_reports_empty_when_only_subdirs ... ok
[INFO] [stdout] test doctor::tests::stat_claude_sessions_skips_dotfiles_but_counts_real_session_files ... ok
[INFO] [stdout] test doctor::tests::stat_plugin_dirs_distinguishes_ok_missing_and_not_a_directory ... ok
[INFO] [stdout] test doctor::tests::stat_usage_json_distinguishes_current_stale_and_missing ... ok
[INFO] [stdout] test doctor::tests::stat_usage_lock_distinguishes_active_stale_and_absent ... ok
[INFO] [stdout] test doctor::tests::stdout_not_a_tty_warns_not_fails ... ok
[INFO] [stdout] test doctor::tests::summary_counts_aggregate_across_categories ... ok
[INFO] [stdout] test doctor::tests::term_dumb_warns_not_fails ... ok
[INFO] [stdout] test doctor::tests::term_empty_warns ... ok
[INFO] [stdout] test doctor::tests::term_unset_warns ... ok
[INFO] [stdout] test doctor::tests::terminal_width_at_threshold_passes ... ok
[INFO] [stdout] test doctor::tests::stat_usage_lock_legacy_non_json_falls_back_to_mtime_via_lockstore ... ok
[INFO] [stdout] test doctor::tests::term_non_utf8_warns_with_distinct_hint ... ok
[INFO] [stdout] test doctor::tests::warn_and_skip_checks_render_their_hint ... ok
[INFO] [stdout] test doctor::tests::terminal_width_zero_warns_with_distinct_hint ... ok
[INFO] [stdout] test doctor::tests::terminal_width_under_threshold_warns ... ok
[INFO] [stdout] test doctor::tests::terminal_width_unknown_warns ... ok
[INFO] [stdout] test driver::tests::catppuccin_mocha_renders_with_mocha_palette_under_truecolor ... ok
[INFO] [stdout] test driver::tests::broken_user_theme_file_warns_but_does_not_abort_startup ... ok
[INFO] [stdout] test driver::tests::check_config_accepts_user_theme_name ... ok
[INFO] [stdout] test driver::tests::check_config_catches_unknown_theme_name ... ok
[INFO] [stdout] test driver::tests::check_config_catches_unknown_segment_override_key ... ok
[INFO] [stdout] test driver::tests::check_config_counts_warnings_across_all_three_scopes ... ok
[INFO] [stdout] test driver::tests::check_config_catches_unknown_top_level_key ... ok
[INFO] [stdout] test driver::tests::check_config_surfaces_validation_warnings ... ok
[INFO] [stdout] test doctor::tests::stat_cache_root_returns_absent_when_path_missing_under_writable_parent ... ok
[INFO] [stdout] test driver::tests::check_config_surfaces_multi_line_validation_warnings ... ok
[INFO] [stdout] test doctor::tests::snapshot_credentials_attempts_cascade_when_xdg_or_claude_dir_overrides_home ... ok
[INFO] [stdout] test doctor::tests::stat_claude_sessions_counts_files_only_not_subdirs_or_dotfiles ... ok
[INFO] [stdout] test driver::tests::check_config_with_no_resolvable_path_exits_one ... ok
[INFO] [stdout] test driver::tests::check_config_with_missing_explicit_path_warns_but_exits_zero ... ok
[INFO] [stdout] test driver::tests::check_config_with_malformed_toml_exits_one_and_reports_invalid ... ok
[INFO] [stdout] test driver::tests::cli_env_xdg_takes_precedence_over_home_in_resolution ... ok
[INFO] [stdout] test driver::tests::check_config_with_valid_file_exits_zero_and_reports_ok ... ok
[INFO] [stdout] test driver::tests::color_policy_cli_always_wins_over_no_color_env ... ok
[INFO] [stdout] test driver::tests::claude_padding_exceeds_width_clamps_to_zero_and_drops_everything ... ok
[INFO] [stdout] test driver::tests::claude_padding_shrinks_render_budget_and_drops_segment ... ok
[INFO] [stdout] test driver::tests::color_policy_config_auto_falls_through_to_terminal_detection ... ok
[INFO] [stdout] test driver::tests::color_policy_config_never_strips_color ... ok
[INFO] [stdout] test driver::tests::color_policy_cli_never_wins_over_force_env ... ok
[INFO] [stdout] test driver::tests::color_policy_config_always_forces_color ... ok
[INFO] [stdout] test driver::tests::color_policy_force_color_env_zero_is_treated_as_absent ... ok
[INFO] [stdout] test driver::tests::color_policy_test_capability_override_short_circuits_everything ... ok
[INFO] [stdout] test driver::tests::compose_init_body_default_theme_passes_body_through ... ok
[INFO] [stdout] test driver::tests::compose_init_body_falls_back_when_preset_has_no_tables ... ok
[INFO] [stdout] test driver::tests::compose_init_body_escapes_quotes_and_backslashes_in_theme_name ... ok
[INFO] [stdout] test driver::tests::color_policy_no_color_env_wins_over_force_env ... ok
[INFO] [stdout] test driver::tests::compose_init_body_inserts_theme_before_first_table ... ok
[INFO] [stdout] test driver::tests::default_theme_under_palette16_wraps_segments_with_sgr ... ok
[INFO] [stdout] test driver::tests::claude_padding_zero_matches_no_padding ... ok
[INFO] [stdout] test driver::tests::compose_init_body_handles_table_header_at_byte_zero ... ok
[INFO] [stdout] test driver::tests::doctor_action_with_healthy_env_renders_and_exits_zero ... ok
[INFO] [stdout] test driver::tests::doctor_action_with_home_unset_exits_one ... ok
[INFO] [stdout] test driver::tests::cli_env_routes_home_through_to_config_resolution ... ok
[INFO] [stdout] test driver::tests::doctor_default_output_includes_unicode_glyph ... ok
[INFO] [stdout] test driver::tests::doctor_plain_output_is_ascii_only ... ok
[INFO] [stdout] test driver::tests::doctor_stdout_failure_logs_to_stderr_and_returns_report_exit_code ... ok
[INFO] [stdout] test driver::tests::doctor_config_override_to_missing_explicit_path_fails ... ok
[INFO] [stdout] test driver::tests::doctor_action_threads_cli_override_through_from_process ... ok
[INFO] [stdout] test driver::tests::force_color_detect_reads_colorterm_from_cli_env_not_ambient_process ... ok
[INFO] [stdout] test driver::tests::doctor_unknown_flag_exits_two ... ok
[INFO] [stdout] test driver::tests::empty_config_value_exits_two ... ok
[INFO] [stdout] test driver::tests::help_flag_prints_help_to_stdout_and_exits_zero ... ok
[INFO] [stdout] test driver::tests::explicit_config_path_drives_render_not_just_check ... ok
[INFO] [stdout] test driver::tests::force_color_detect_never_returns_none ... ok
[INFO] [stdout] test driver::tests::init_eof_on_overwrite_aborts_without_clobbering ... ok
[INFO] [stdout] test driver::tests::init_emits_claude_code_settings_snippet ... ok
[INFO] [stdout] test driver::tests::init_honors_explicit_config_flag_over_xdg_path ... ok
[INFO] [stdout] test driver::tests::init_default_theme_omits_theme_field_to_match_presets_apply ... ok
[INFO] [stdout] test driver::tests::init_does_not_warn_for_plain_ascii_config_path ... ok
[INFO] [stdout] test driver::tests::doctor_subcommand_dispatches_via_cli_main ... ok
[INFO] [stdout] test driver::tests::init_no_doctor_writes_config_without_running_doctor ... ok
[INFO] [stdout] test driver::tests::init_snippet_preserves_env_resolved_config_path ... ok
[INFO] [stdout] test driver::tests::init_snippet_escapes_quotes_and_backslashes_in_config_path ... ok
[INFO] [stdout] test driver::tests::init_overwrite_prompts_and_backs_up_existing_config ... ok
[INFO] [stdout] test driver::tests::init_creates_valid_config_round_trips_parse ... ok
[INFO] [stdout] test driver::tests::init_snippet_preserves_explicit_config_flag ... ok
[INFO] [stdout] test driver::tests::init_snippet_uses_bare_command_for_implicit_xdg_path ... ok
[INFO] [stdout] test driver::tests::init_succeeds_when_both_config_and_backup_already_exist ... ok
[INFO] [stdout] test driver::tests::init_unknown_preset_in_choices_errors ... ok
[INFO] [stdout] test driver::tests::init_warns_about_env_resolved_path_with_spaces ... ok
[INFO] [stdout] test driver::tests::init_user_says_no_to_overwrite_does_not_clobber_backup ... ok
[INFO] [stdout] test driver::tests::init_without_resolvable_path_errors ... ok
[INFO] [stdout] test driver::tests::init_warns_when_config_path_contains_shell_metacharacters ... ok
[INFO] [stdout] test driver::tests::init_writes_schema_directive_at_top_of_config ... ok
[INFO] [stdout] test driver::tests::malformed_json_renders_marker_and_routes_parse_error_to_injected_stderr ... ok
[INFO] [stdout] test driver::tests::meta_flags_skip_terminal_width_detection ... ok
[INFO] [stdout] test driver::tests::init_warns_when_config_path_contains_spaces ... ok
[INFO] [stdout] test driver::tests::minimal_theme_under_palette16_emits_no_color ... ok
[INFO] [stdout] test driver::tests::init_propagates_doctor_exit_code ... ok
[INFO] [stdout] test driver::tests::color_policy_no_color_env_wins_over_config_always ... ok
[INFO] [stdout] test driver::tests::init_writes_to_resolved_xdg_path ... ok
[INFO] [stdout] test driver::tests::minimal_payload_round_trips_through_cli_main ... ok
[INFO] [stdout] test driver::tests::multi_line_config_renders_lines_in_parsed_integer_order ... ok
[INFO] [stdout] test driver::tests::multi_line_config_renders_one_writeln_per_line ... ok
[INFO] [stdout] test driver::tests::no_color_capability_strips_theme_under_default ... ok
[INFO] [stdout] test driver::tests::no_color_flag_outranks_force_color_env_end_to_end ... ok
[INFO] [stdout] test driver::tests::overwrite_policy_constructors_lock_the_bit_mapping ... ok
[INFO] [stdout] test driver::tests::multi_line_parse_failure_emits_one_question_marker_not_per_line ... ok
[INFO] [stdout] test driver::tests::multi_line_with_no_numbered_tables_falls_back_to_single_line_render ... ok
[INFO] [stdout] test driver::tests::parse_confirmation_accepts_y_yes_case_insensitive_and_trims_whitespace ... ok
[INFO] [stdout] test driver::tests::multi_line_empty_segments_in_a_line_still_emits_trailing_newline ... ok
[INFO] [stdout] test driver::tests::needs_shell_quoting_flags_metacharacters_and_whitespace ... ok
[INFO] [stdout] test driver::tests::power_user_preset_renders_two_lines_end_to_end ... ok
[INFO] [stdout] test driver::tests::presets_apply_empty_name_fails_with_unknown_preset ... ok
[INFO] [stdout] test driver::tests::init_runs_doctor_inline_after_writing_config ... ok
[INFO] [stdout] test driver::tests::presets_apply_honors_explicit_config_flag_over_xdg_path ... ok
[INFO] [stdout] test driver::tests::presets_apply_eof_without_force_aborts ... ok
[INFO] [stdout] test driver::tests::presets_apply_prompt_rejects_on_n_and_leaves_config_untouched ... ok
[INFO] [stdout] test driver::tests::presets_apply_creates_missing_parent_dirs ... ok
[INFO] [stdout] test driver::tests::presets_apply_unknown_name_errors_and_lists_valid ... ok
[INFO] [stdout] test driver::tests::presets_apply_refuses_to_clobber_existing_backup_without_force ... ok
[INFO] [stdout] test driver::tests::presets_apply_without_resolvable_path_errors ... ok
[INFO] [stdout] test driver::tests::presets_list_ignores_force_flag_by_rejecting_it ... ok
[INFO] [stdout] test driver::tests::presets_apply_prompts_on_existing_config_and_accepts_y ... ok
[INFO] [stdout] test driver::tests::presets_list_prints_every_preset_name ... ok
[INFO] [stdout] test driver::tests::render_io_error_exits_one ... ok
[INFO] [stdout] test driver::tests::presets_apply_write_failure_reports_stderr_and_exits_one ... ok
[INFO] [stdout] test driver::tests::themes_list_prints_every_built_in_to_stdout ... ok
[INFO] [stdout] test driver::tests::themes_without_subcommand_exits_two ... ok
[INFO] [stdout] test driver::tests::render_path_surfaces_unknown_key_warnings_on_stderr ... ok
[INFO] [stdout] test driver::tests::unknown_flag_exits_two_and_prints_hint_to_stderr ... ok
[INFO] [stdout] test driver::tests::presets_apply_force_replaces_existing_backup ... ok
[INFO] [stdout] test driver::tests::presets_apply_writes_parsed_config_to_resolved_path ... ok
[INFO] [stdout] test driver::tests::presets_apply_force_skips_prompt_and_backs_up ... ok
[INFO] [stdout] test driver::tests::themes_list_includes_user_themes_with_source_path ... ok
[INFO] [stdout] test driver::tests::unknown_key_warnings_emit_once_per_typo_on_render_path ... ok
[INFO] [stdout] test driver::tests::presets_apply_writes_schema_directive_at_top_of_config ... ok
[INFO] [stdout] test driver::tests::unknown_subcommand_exits_two ... ok
[INFO] [stdout] test driver::tests::warn_if_path_needs_user_edit_quiet_for_clean_paths ... ok
[INFO] [stdout] test driver::tests::unknown_user_theme_name_falls_back_to_default_with_warning ... ok
[INFO] [stdout] test driver::tests::unknown_theme_falls_back_to_default_with_warning ... ok
[INFO] [stdout] test driver::tests::user_theme_from_disk_renders_with_configured_palette ... ok
[INFO] [stdout] test driver::tests::version_flag_prints_version_to_stdout_and_exits_zero ... ok
[INFO] [stdout] test driver::tests::warn_if_path_needs_user_edit_flags_leading_dash ... ok
[INFO] [stdout] test driver::tests::user_themes_dir_prefers_xdg_over_home ... ok
[INFO] [stdout] test doctor::tests::plugins_render_time_error_panics_in_debug_builds - should panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 363 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/gen-config-schema.rs (/opt/rustwide/target/debug/deps/gen_config_schema-114e6060c3c91298)
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/linesmith-4c50b6b6f0577a27)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/doctor_integration.rs (/opt/rustwide/target/debug/deps/doctor_integration-e08785629924eec4)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test exit_code_all_pass_is_zero ... ok
[INFO] [stdout] test exit_code_any_fail_is_one ... ok
[INFO] [stdout] test exit_code_fail_with_warnings_is_one ... ok
[INFO] [stdout] test exit_code_skip_only_is_zero ... ok
[INFO] [stdout] test exit_code_warn_only_is_zero ... ok
[INFO] [stdout] test default_render_full_envelope_matches_golden ... ok
[INFO] [stdout] test plain_render_full_envelope_matches_golden ... ok
[INFO] [stdout] test plain_render_failure_envelope_matches_golden ... ok
[INFO] [stdout] test plain_render_emits_only_ascii_when_user_strings_are_ascii ... ok
[INFO] [stdout] test cli_main_with_plain_flag_outside_doctor_exits_two ... ok
[INFO] [stdout] test cli_main_with_help_flag_exits_zero_and_lists_doctor ... ok
[INFO] [stdout] test cli_main_with_unknown_doctor_flag_exits_two ... ok
[INFO] [stdout] test render_with_long_labels_emits_no_unicode_box_drawing_glyphs ... ok
[INFO] [stdout] test render_with_credentials_check_emits_no_token_substrings ... ok
[INFO] [stdout] test plain_summary_separator_is_ascii_slash ... ok
[INFO] [stdout] test default_summary_separator_is_unicode_dot ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-5eb2bbdf534aaf1d)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stderr] linesmith: parse: invalid JSON at 1:2: key must be a string at line 1 column 2
[INFO] [stdout] test malformed_json_exits_zero_with_marker_line ... ok
[INFO] [stdout] test extreme_narrow_keeps_only_lowest_priority_segments ... ok
[INFO] [stdout] test config_priority_override_flips_drop_order_under_pressure ... ok
[INFO] [stdout] test config_reorders_and_filters_segments ... ok
[INFO] [stdout] test config_style_override_invalid_warns_and_render_still_succeeds ... ok
[INFO] [stdout] test model_format_compact_strips_context_word_end_to_end ... ok
[INFO] [stdout] test model_format_full_preserves_anthropics_verbatim_string_end_to_end ... ok
[INFO] [stdout] test renders_model_and_workspace_when_outside_worktree ... ok
[INFO] [stdout] test narrow_terminal_drops_cost_and_effort_first ... ok
[INFO] [stdout] test git_branch_hides_outside_repo ... ok
[INFO] [stdout] test renders_full_payload_with_cost_effort_and_workspace ... ok
[INFO] [stdout] test config_style_override_emits_sgr_bytes_end_to_end ... ok
[INFO] [stdout] test xdg_plugin_renders_via_full_driver_path ... ok
[INFO] [stdout] test git_branch_renders_unborn_head_via_full_driver_path ... ok
[INFO] [stdout] test workspace_and_git_branch_coexist_on_linked_worktree ... ok
[INFO] [stdout] test renders_worktree_hybrid_with_real_linked_worktree ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/log_bridge.rs (/opt/rustwide/target/debug/deps/log_bridge-240ee71e0961640e)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test plugin_log_suppressed_when_level_off ... ok
[INFO] [stdout] test plugin_log_emits_warn_line_when_level_warn ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/plugins.rs (/opt/rustwide/target/debug/deps/plugins-8ed8520add74f1be)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test unknown_dep_fixture_rejected_with_unknown_data_dep ... ok
[INFO] [stdout] test syntax_error_fixture_rejected_at_load_time ... ok
[INFO] [stdout] test collision_built_in_fixture_rejected_with_id_collision ... ok
[INFO] [stdout] test visibility_fixture_hides_when_cost_unset ... ok
[INFO] [stdout] test runtime_error_fixture_maps_to_segment_error ... ok
[INFO] [stdout] test minimal_fixture_compiles_and_renders_literal_text ... ok
[INFO] [stdout] test declares_usage_fixture_sees_delegated_error_code ... ok
[INFO] [stdout] test uses_ctx_config_fixture_round_trips_label_from_toml_extras ... ok
[INFO] [stdout] test infinite_loop_fixture_aborts_via_op_limit_within_bounded_time ... ok
[INFO] [stdout] test visibility_fixture_renders_when_cost_present ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/linesmith_core-c5047a74fcc9f721)
[INFO] [stdout] 
[INFO] [stdout] running 1047 tests
[INFO] [stdout] test config::tests::cli_override_wins_over_everything_and_is_explicit ... ok
[INFO] [stdout] test config::tests::empty_cli_override_does_not_count_as_explicit ... ok
[INFO] [stdout] test config::tests::empty_config_parses ... ok
[INFO] [stdout] test config::tests::empty_env_values_are_ignored ... ok
[INFO] [stdout] test config::tests::env_wins_over_xdg_and_home_and_is_explicit ... ok
[INFO] [stdout] test config::tests::bom_prefixed_config_parses ... ok
[INFO] [stdout] test config::tests::from_str_validated_allows_separator_and_other_known_layout_options_keys ... ok
[INFO] [stdout] test config::tests::from_str_validated_allows_spec_documented_segment_override_keys ... ok
[INFO] [stdout] test config::tests::from_str_validated_allows_implemented_and_forward_compat_top_level_keys ... ok
[INFO] [stdout] test config::tests::from_str_validated_names_the_segment_id_in_warnings ... ok
[INFO] [stdout] test config::tests::from_str_validated_rejects_segment_specific_keys_on_wrong_built_in ... ok
[INFO] [stdout] test config::tests::from_str_validated_returns_parse_error_for_malformed_toml ... ok
[INFO] [stdout] test config::tests::from_str_validated_skips_unknown_segment_ids_because_plugins_own_their_schema ... ok
[INFO] [stdout] test config::tests::from_str_validated_warns_on_unknown_layout_options_key ... ok
[INFO] [stdout] test config::tests::git_branch_allows_per_marker_hide_below_cells_without_warning ... ok
[INFO] [stdout] test config::tests::from_str_validated_warns_on_unknown_top_level_key ... ok
[INFO] [stdout] test config::tests::from_str_validated_warns_on_unknown_segment_override_key ... ok
[INFO] [stdout] test config::tests::layout_field_defaults_to_single_line_when_omitted ... ok
[INFO] [stdout] test config::tests::home_fallback_is_implicit ... ok
[INFO] [stdout] test config::tests::layout_field_parses_kebab_case_variants ... ok
[INFO] [stdout] test config::tests::io_error_carries_path_in_display ... ok
[INFO] [stdout] test config::tests::layout_options_color_accepts_all_three_variants ... ok
[INFO] [stdout] test config::tests::layout_options_color_and_padding_parse ... ok
[INFO] [stdout] test config::tests::invert_warns_on_reset_segment_schema ... ok
[INFO] [stdout] test config::tests::layout_options_rejects_unknown_color_variant ... ok
[INFO] [stdout] test config::tests::extra_usage_allows_currency_and_percent_format_without_warning ... ok
[INFO] [stdout] test config::tests::line_numbered_keys_preserved_verbatim_for_builder_validation ... ok
[INFO] [stdout] test config::tests::line_numbered_only_parses ... ok
[INFO] [stdout] test config::tests::line_unknown_scalar_key_does_not_fail_parse_forward_compat ... ok
[INFO] [stdout] test config::tests::line_with_segments_and_numbered_children_coexist ... ok
[INFO] [stdout] test config::tests::line_segments_parse_in_order ... ok
[INFO] [stdout] test config::tests::layout_options_defaults_populate_missing_keys ... ok
[INFO] [stdout] test config::tests::layout_options_omitted_entirely_is_ok ... ok
[INFO] [stdout] test config::tests::malformed_toml_reports_parse_error ... ok
[INFO] [stdout] test config::tests::plugin_dirs_defaults_to_empty_when_absent ... ok
[INFO] [stdout] test config::tests::load_returns_none_for_missing_file ... ok
[INFO] [stdout] test config::tests::load_validated_returns_none_for_missing_file ... ok
[INFO] [stdout] test config::tests::model_segment_allows_format_key_without_warning ... ok
[INFO] [stdout] test config::tests::load_validated_surfaces_unknown_key_warnings ... ok
[INFO] [stdout] test config::tests::load_validated_file_path_surfaces_parse_error_with_path ... ok
[INFO] [stdout] test config::tests::schema_directive_wrapped_body_round_trips_as_toml ... ok
[INFO] [stdout] test config::tests::rate_limit_percent_segments_allow_format_and_invert_without_warning ... ok
[INFO] [stdout] test config::tests::rate_limit_reset_segments_allow_compact_and_use_days_without_warning ... ok
[INFO] [stdout] test config::tests::plugin_dirs_deserializes_from_toml_as_path_list ... ok
[INFO] [stdout] test config::tests::reset_segment_allows_absolute_format_keys_without_warning ... ok
[INFO] [stdout] test config::tests::returns_none_when_no_home_and_no_xdg ... ok
[INFO] [stdout] test config::tests::segment_override_width_parses_both_sides ... ok
[INFO] [stdout] test config::tests::segment_override_priority_parses ... ok
[INFO] [stdout] test data_context::cache::tests::atomic_write_json_rejects_path_without_parent ... ok
[INFO] [stdout] test config::tests::use_days_warns_on_percent_segment_schema ... ok
[INFO] [stdout] test config::tests::unknown_top_level_key_is_forward_compatible ... ok
[INFO] [stdout] test config::tests::workspace_segment_warns_when_format_key_set ... ok
[INFO] [stdout] test config::tests::xdg_config_home_is_implicit ... ok
[INFO] [stdout] test data_context::cache::tests::cache_read_returns_none_for_corrupt_json ... ok
[INFO] [stdout] test data_context::cache::tests::cache_read_returns_none_for_non_utf8_bytes ... ok
[INFO] [stdout] test config::tests::schema_for_config_round_trips_as_valid_json ... ok
[INFO] [stdout] test data_context::cache::tests::cache_read_returns_none_for_schema_mismatch ... ok
[INFO] [stdout] test data_context::cache::tests::cache_read_returns_none_when_missing ... ok
[INFO] [stdout] test data_context::cache::tests::cache_reads_rfc3339_z_suffix_serde_format ... ok
[INFO] [stdout] test data_context::cache::tests::cache_read_returns_none_for_zero_byte_file ... ok
[INFO] [stdout] test data_context::cache::tests::cache_read_tolerates_entry_with_both_data_and_error ... ok
[INFO] [stdout] test data_context::cache::tests::cache_read_returns_none_for_clock_skew ... ok
[INFO] [stdout] test config::tests::validated_and_silent_parse_yield_identical_config_on_clean_input ... ok
[INFO] [stderr] linesmith [warn]: cascade: cache read failed: cache I/O error on /tmp/.tmpaBn1WO/blocked/nested/usage.json: not a directory
[INFO] [stdout] test data_context::cache::tests::cache_round_trip_preserves_error_entry ... ok
[INFO] [stderr] linesmith [error]: cascade: cache write failed: cache I/O error on /tmp/.tmpaBn1WO/blocked/nested: not a directory
[INFO] [stdout] test data_context::cache::tests::lock_error_omitted_from_serialized_form_when_none ... ok
[INFO] [stdout] test data_context::cache::tests::cache_round_trip_preserves_unknown_buckets ... ok
[INFO] [stdout] test data_context::cache::tests::cache_round_trip_preserves_data_entry ... ok
[INFO] [stdout] test data_context::cache::tests::lock_read_non_utf8_routes_through_legacy_fallback ... ok
[INFO] [stdout] test data_context::cache::tests::lock_read_returns_none_when_missing ... ok
[INFO] [stdout] test data_context::cache::tests::cache_write_creates_missing_parent_directory ... ok
[INFO] [stdout] test data_context::cache::tests::lock_read_legacy_non_json_uses_mtime_plus_30s ... ok
[INFO] [stdout] test data_context::cache::tests::lock_read_caps_pathological_blocked_until ... ok
[INFO] [stdout] test data_context::cache::tests::lock_round_trip ... ok
[INFO] [stdout] test data_context::cascade::tests::active_lock_falls_through_to_jsonl_when_available ... ok
[INFO] [stdout] test data_context::cascade::tests::cascade_tolerates_missing_cache_and_lock_stores ... ok
[INFO] [stdout] test data_context::cascade::tests::classify_persist_error_routes_io_failure_to_error ... ok
[INFO] [stdout] test data_context::cascade::tests::classify_persist_error_routes_lock_kind_into_message ... ok
[INFO] [stdout] test data_context::cascade::tests::cache_write_failure_does_not_block_returned_data ... ok
[INFO] [stdout] test data_context::cascade::tests::classify_persist_error_routes_permission_denied_to_error_on_unix ... ok
[INFO] [stdout] test data_context::cascade::tests::credential_failure_other_than_missing_preserves_variant_tag ... ok
[INFO] [stdout] test data_context::cascade::tests::credential_variant_falls_through_to_jsonl_when_available ... ok
[INFO] [stdout] test data_context::cascade::tests::active_lock_with_no_cached_data_does_not_hit_endpoint ... ok
[INFO] [stdout] test data_context::cascade::tests::active_lock_with_cached_error_falls_through_to_jsonl_when_available ... ok
[INFO] [stdout] test data_context::cascade::tests::active_lock_serves_cached_error_without_hitting_endpoint ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_401_with_empty_jsonl_surfaces_unauthorized ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_401_falls_through_to_jsonl_when_available ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_429_falls_through_to_jsonl_when_available ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_429_with_empty_jsonl_surfaces_ratelimited ... ok
[INFO] [stdout] test data_context::cascade::tests::active_unauthorized_lock_rejects_stale_cached_data ... ok
[INFO] [stdout] test data_context::cascade::tests::clock_skew_future_cached_at_treats_entry_as_stale ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_401_writes_lock_so_peers_skip_the_stale_token ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_malformed_response_falls_through_to_jsonl ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_network_error_falls_through_same_as_timeout ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_timeout_without_stale_falls_through_to_jsonl ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_timeout_without_stale_or_jsonl_surfaces_original_error ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_401_does_not_serve_stale_cache ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_timeout_writes_lock_with_error_ttl ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_429_writes_lock_with_retry_after_backoff ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_200_writes_cache_and_lock ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_timeout_with_stale_cache_serves_stale ... ok
[INFO] [stdout] test data_context::cascade::tests::endpoint_429_with_stale_cache_serves_stale ... ok
[INFO] [stdout] test data_context::cascade::tests::jsonl_fallback_clamps_future_dated_block_start_to_now ... ok
[INFO] [stdout] test data_context::cascade::tests::jsonl_fallback_surfaces_five_hour_window_with_ends_at ... ok
[INFO] [stdout] test data_context::cascade::tests::fresh_cache_is_source_endpoint_not_jsonl ... ok
[INFO] [stdout] test data_context::cascade::tests::no_credentials_falls_through_to_jsonl_when_available ... ok
[INFO] [stdout] test data_context::cascade::tests::fresh_disk_cache_short_circuits_without_reading_credentials ... ok
[INFO] [stdout] test data_context::cascade::tests::no_credentials_surfaces_nocredentials_not_timeout ... ok
[INFO] [stdout] test data_context::cascade::tests::no_credentials_with_empty_jsonl_still_surfaces_nocredentials ... ok
[INFO] [stdout] test data_context::cascade::tests::route_persist_error_dispatches_debug_class_to_debug_closure_only ... ok
[INFO] [stdout] test data_context::cascade::tests::route_persist_error_dispatches_error_class_to_error_closure_only ... ok
[INFO] [stdout] test data_context::cascade::tests::route_persist_error_passes_msg_through_unchanged ... ok
[INFO] [stdout] test data_context::cascade::tests::lock_written_on_429_blocks_next_process_from_hitting_endpoint ... ok
[INFO] [stdout] test data_context::cascade::tests::subprocess_failed_cred_preserves_subprocess_tag ... ok
[INFO] [stdout] test data_context::cascade::tests::invocation_after_401_does_not_serve_stale_cache_via_lock_active ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::candidate_list_includes_xdg_when_home_unset ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::env_dir_absent_when_not_set ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::env_dir_candidate_included_when_set ... ok
[INFO] [stdout] test data_context::cascade::tests::invocation_after_401_falls_through_to_jsonl_when_available ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::resolve_credentials_end_to_end_no_files ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::resolve_falls_through_to_legacy ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::env_dir_set_but_empty_dir_falls_through_to_xdg ... ok
[INFO] [stdout] test data_context::cascade::tests::expired_lock_does_not_gate_fetch ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::resolve_no_home_returns_no_credentials ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::xdg_default_root_is_home_dot_config ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::xdg_path_probed_even_when_home_is_unset ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::resolve_reads_existing_env_dir_credentials ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::resolve_no_files_returns_no_credentials ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::xdg_preferred_over_legacy_when_both_roots_present ... ok
[INFO] [stdout] test data_context::credentials::tests::credential_error_code_taxonomy ... ok
[INFO] [stdout] test data_context::cascade::tests::stale_cache_with_active_lock_serves_stale_without_credentials ... ok
[INFO] [stdout] test data_context::credentials::tests::credentials_debug_redacts_token ... ok
[INFO] [stdout] test data_context::credentials::tests::parses_valid_credentials_bytes ... ok
[INFO] [stdout] test data_context::credentials::tests::parse_error_display_does_not_leak_token_bytes ... ok
[INFO] [stdout] test data_context::credentials::tests::rejects_empty_token ... ok
[INFO] [stdout] test data_context::credentials::tests::rejects_absent_access_token_key_as_missing_field ... ok
[INFO] [stdout] test data_context::credentials::tests::rejects_missing_claude_ai_oauth ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::xdg_wins_when_both_xdg_and_legacy_files_exist ... ok
[INFO] [stdout] test data_context::credentials::tests::cascade::resolve_falls_through_to_xdg ... ok
[INFO] [stdout] test data_context::credentials::tests::rejects_invalid_json ... ok
[INFO] [stdout] test data_context::credentials::tests::rejects_non_string_access_token ... ok
[INFO] [stdout] test data_context::credentials::tests::rejects_null_token_as_empty_token ... ok
[INFO] [stdout] test data_context::error::usage_error_tests::display_covers_every_variant ... ok
[INFO] [stdout] test data_context::credentials::tests::scopes_default_to_empty_when_missing ... ok
[INFO] [stdout] test data_context::error::usage_error_tests::source_chains_through_wrapping_variants ... ok
[INFO] [stdout] test data_context::error::usage_error_tests::code_flattens_wrapping_variants_via_delegation ... ok
[INFO] [stdout] test data_context::fetcher::tests::default_user_agent_includes_version_and_crate_name ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_204_empty_body_surfaces_parse_error ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_401_display_does_not_leak_token ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_builds_url_without_double_slash ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_maps_429_with_http_date_retry_after ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_happy_path_parses_live_shape ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_maps_5xx_to_network_error ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_maps_connection_refused_to_network_error ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_maps_429_with_integer_retry_after ... ok
[INFO] [stdout] test data_context::cascade::tests::stale_cache_without_lock_triggers_fetch_and_overwrites ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_maps_429_without_retry_after_to_default_backoff ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_maps_timeout_to_usage_timeout ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_maps_401_to_unauthorized ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_maps_malformed_json_to_parse_error ... ok
[INFO] [stdout] test data_context::fetcher::tests::parse_retry_after_caps_pathological_values ... ok
[INFO] [stdout] test data_context::fetcher::tests::parse_retry_after_garbage_returns_none ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_passes_token_through_to_transport ... ok
[INFO] [stdout] test data_context::fetcher::tests::fetch_passes_timeout_through_to_transport ... ok
[INFO] [stdout] test data_context::fetcher::tests::parse_retry_after_integer_seconds ... ok
[INFO] [stdout] test data_context::fetcher::tests::parse_retry_after_http_date_past_returns_none ... ok
[INFO] [stdout] test data_context::fetcher::tests::parse_retry_after_zero ... ok
[INFO] [stdout] test data_context::fetcher::tests::parse_retry_after_http_date_future ... ok
[INFO] [stdout] test data_context::fetcher::tests::ureq_transport_construction_pins_user_agent_and_proxy_path ... ok
[INFO] [stdout] test data_context::git::tests::dirty_is_clean_when_no_gix_repo_held ... ok
[INFO] [stdout] test data_context::cache::tests::concurrent_writes_produce_intact_file ... ok
[INFO] [stdout] test data_context::credentials::tests::oversized_file_rejected_before_parse ... ok
[INFO] [stdout] test data_context::git::tests::non_repo_directory_returns_ok_none ... ok
[INFO] [stdout] test data_context::git::tests::bare_repo_classifies_as_bare ... ok
[INFO] [stdout] test data_context::git::tests::head_kind_str_covers_every_variant ... ok
[INFO] [stdout] test data_context::git::tests::upstream_is_none_when_no_gix_repo_held ... ok
[INFO] [stdout] test data_context::git::tests::main_checkout_classifies_as_main ... ok
[INFO] [stdout] test data_context::git::tests::unborn_head_reports_symbolic_ref_target ... ok
[INFO] [stdout] test data_context::git::tests::dirty_detects_modified_tracked_file ... ok
[INFO] [stdout] test data_context::git::tests::dirty_is_clean_on_committed_repo_with_no_changes ... ok
[INFO] [stderr] HEAD is now at c526325 tracked
[INFO] [stdout] test data_context::git::tests::dirty_detects_untracked_file ... ok
[INFO] [stdout] test data_context::jsonl::tests::active_block_computed_from_recent_entries ... ok
[INFO] [stdout] test data_context::jsonl::tests::aggregate_dedupes_across_cascade_roots ... ok
[INFO] [stdout] test data_context::git::tests::upstream_is_none_when_no_tracking_branch_configured ... ok
[INFO] [stdout] test data_context::jsonl::tests::aggregate_happy_path_produces_active_block_and_7d_window ... ok
[INFO] [stdout] test data_context::jsonl::tests::aggregate_dedupes_on_message_id ... ok
[INFO] [stdout] test data_context::jsonl::tests::aggregate_keeps_missing_id_entries_individually ... ok
[INFO] [stdout] test data_context::jsonl::tests::aggregate_old_only_transcript_has_no_active_block ... ok
[INFO] [stdout] test data_context::jsonl::tests::aggregate_reads_xdg_projects_when_home_unset ... ok
[INFO] [stdout] test data_context::jsonl::tests::aggregate_returns_directory_missing_when_no_roots_exist ... ok
[INFO] [stdout] test data_context::jsonl::tests::aggregate_returns_no_entries_when_roots_empty ... ok
[INFO] [stdout] test data_context::jsonl::tests::block_models_dedupes_within_block ... ok
[INFO] [stdout] test data_context::jsonl::tests::claude_config_dir_only_no_home_no_xdg ... ok
[INFO] [stdout] test data_context::jsonl::tests::entries_exactly_5h_apart_stay_in_same_block ... ok
[INFO] [stdout] test data_context::git::tests::upstream_is_none_on_detached_head ... ok
[INFO] [stdout] test data_context::jsonl::tests::entry_older_than_7d_excluded_from_window ... ok
[INFO] [stdout] test data_context::jsonl::tests::entry_at_exactly_7d_boundary_is_included ... ok
[INFO] [stdout] test data_context::jsonl::tests::floor_to_grain_returns_input_when_floor_underflows_min ... ok
[INFO] [stdout] test data_context::jsonl::tests::future_timestamp_inside_5h_block_is_counted_as_mild_skew ... ok
[INFO] [stdout] test data_context::jsonl::tests::gap_of_5h_plus_one_ns_opens_new_block ... ok
[INFO] [stdout] test data_context::jsonl::tests::five_hour_block_end_derives_from_start ... ok
[INFO] [stdout] test data_context::jsonl::tests::jsonl_error_code_taxonomy_is_unique ... ok
[INFO] [stdout] test data_context::jsonl::tests::new_block_starts_on_gap_exceeding_window ... ok
[INFO] [stdout] test data_context::jsonl::tests::no_active_block_when_last_entry_is_older_than_window ... ok
[INFO] [stdout] test data_context::jsonl::tests::parses_full_record_shape ... ok
[INFO] [stdout] test data_context::jsonl::tests::parses_sparse_record_shape ... ok
[INFO] [stdout] test data_context::jsonl::tests::project_roots_includes_env_dir_when_set ... ok
[INFO] [stdout] test data_context::jsonl::tests::project_roots_falls_back_to_home_when_xdg_unset ... ok
[INFO] [stdout] test data_context::jsonl::tests::project_roots_includes_xdg_when_home_unset ... ok
[INFO] [stdout] test data_context::jsonl::tests::project_roots_omits_env_dir_when_unset ... ok
[INFO] [stdout] test data_context::cache::tests::cache_read_surfaces_permission_denied ... FAILED
[INFO] [stdout] test data_context::jsonl::tests::floor_to_grain_hourly_truncates_subhour_components ... ok
[INFO] [stdout] test data_context::jsonl::tests::seven_day_window_excludes_future_timestamps ... ok
[INFO] [stdout] test data_context::jsonl::tests::tailer_offset_monotonically_advances_on_repeat_reads ... ok
[INFO] [stdout] test data_context::jsonl::tests::tailer_only_reads_new_lines_on_second_call ... ok
[INFO] [stdout] test data_context::jsonl::tests::tailer_returns_empty_for_missing_file ... ok
[INFO] [stdout] test data_context::jsonl::tests::tailer_resets_on_truncation ... ok
[INFO] [stdout] test data_context::jsonl::tests::tailer_skips_malformed_lines_and_advances_past_them ... ok
[INFO] [stdout] test data_context::jsonl::tests::tailer_skips_partial_trailing_line ... ok
[INFO] [stdout] test data_context::jsonl::tests::token_counts_from_parts_pins_positional_argument_order ... ok
[INFO] [stdout] test data_context::jsonl::tests::token_counts_total_saturates_on_overflow ... ok
[INFO] [stdout] test data_context::jsonl::tests::tailer_skips_non_utf8_line_and_keeps_later_valid_lines ... ok
[INFO] [stdout] test data_context::jsonl::tests::unknown_fields_are_dropped ... ok
[INFO] [stdout] test data_context::jsonl::tests::usage_limit_reset_keeps_some_over_later_none ... ok
[INFO] [stdout] test data_context::jsonl::tests::usage_limit_reset_picks_most_recent ... ok
[INFO] [stdout] test data_context::usage::tests::bucket_resets_at_accepts_null ... ok
[INFO] [stdout] test data_context::usage::tests::extra_usage_null_utilization_parses_as_none ... ok
[INFO] [stdout] test data_context::usage::tests::extra_usage_utilization_clamps ... ok
[INFO] [stdout] test data_context::usage::tests::injected_codename_lands_in_unknown_buckets ... ok
[INFO] [stdout] test data_context::usage::tests::into_endpoint_usage_preserves_unknown_buckets ... ok
[INFO] [stdout] test data_context::usage::tests::jsonl_usage_smart_ctor_stores_windows ... ok
[INFO] [stdout] test data_context::usage::tests::parses_empty_response ... ok
[INFO] [stdout] test data_context::usage::tests::known_buckets_matches_usage_api_response_fields ... ok
[INFO] [stdout] test data_context::usage::tests::parses_live_capture_losslessly ... ok
[INFO] [stdout] test data_context::usage::tests::utilization_clamps_below_zero ... ok
[INFO] [stdout] test data_context::usage::tests::utilization_clamps_above_one_hundred ... ok
[INFO] [stdout] test data_context::usage::tests::utilization_rejects_non_number ... ok
[INFO] [stdout] test data_context::xdg::tests::cache_scope_falls_back_to_home_dot_cache ... ok
[INFO] [stderr] linesmith [warn]: agent: wrapper present but `name` field missing; degrading to None (possible CC schema drift)
[INFO] [stdout] test data_context::xdg::tests::cache_scope_prefers_xdg_cache_home_over_home ... ok
[INFO] [stderr] linesmith [warn]: agent: expected object, got String; degrading to None
[INFO] [stdout] test data_context::xdg::tests::config_scope_does_not_borrow_xdg_cache_home ... ok
[INFO] [stderr] linesmith [warn]: agent.name: expected string, got Number; degrading to None
[INFO] [stdout] test data_context::xdg::tests::config_scope_falls_back_to_home_dot_config ... ok
[INFO] [stderr] linesmith [warn]: context_window.used_percentage: expected number, got String; degrading leaf to None
[INFO] [stdout] test data_context::xdg::tests::config_scope_uses_xdg_config_home ... ok
[INFO] [stderr] linesmith [warn]: context_window.context_window_size: expected unsigned integer, got String; degrading leaf to None
[INFO] [stdout] test data_context::xdg::tests::empty_sub_does_not_append_trailing_slash ... ok
[INFO] [stderr] linesmith [warn]: context_window.total_input_tokens: expected unsigned integer, got String; degrading leaf to None
[INFO] [stdout] test data_context::xdg::tests::from_os_options_filters_empty_strings_to_none ... ok
[INFO] [stderr] linesmith [warn]: context_window.total_output_tokens: expected unsigned integer, got String; degrading leaf to None
[INFO] [stdout] test data_context::xdg::tests::preserves_non_utf8_xdg_cache_home ... ok
[INFO] [stderr] linesmith [warn]: context_window.context_window_size = 4294967296 exceeds u32::MAX; degrading leaf to None
[INFO] [stdout] test data_context::xdg::tests::returns_none_when_neither_xdg_nor_home_is_set ... ok
[INFO] [stderr] linesmith [warn]: cost.total_lines_removed: missing; degrading leaf to None (possible CC schema drift)
[INFO] [stdout] test input::tests::agent_absent_null_or_empty_yields_none ... ok
[INFO] [stderr] linesmith [warn]: cost.total_cost_usd: expected number, got String; degrading leaf to None
[INFO] [stdout] test input::tests::agent_non_object_degrades_to_none ... ok
[INFO] [stderr] linesmith [warn]: cost.total_cost_usd: expected number, got String; degrading leaf to None
[INFO] [stdout] test input::tests::agent_name_typed_wrong_degrades_to_none ... ok
[INFO] [stderr] linesmith [warn]: cost.total_duration_ms: expected unsigned integer, got String; degrading leaf to None
[INFO] [stdout] test input::tests::context_window_explicit_null_treated_as_none ... ok
[INFO] [stderr] linesmith [warn]: cost.total_api_duration_ms: expected unsigned integer, got String; degrading leaf to None
[INFO] [stdout] test input::tests::context_window_wrapper_with_all_leaves_drift_collapses_to_none ... ok
[INFO] [stderr] linesmith [warn]: cost.total_lines_added: expected unsigned integer, got String; degrading leaf to None
[INFO] [stdout] test input::tests::context_window_size_above_u32_max_degrades_leaf_only ... ok
[INFO] [stderr] linesmith [warn]: cost.total_lines_removed: expected unsigned integer, got String; degrading leaf to None
[INFO] [stdout] test input::tests::cost_absent_treated_as_none ... ok
[INFO] [stderr] linesmith [warn]: cost: expected object, got String; degrading to None
[INFO] [stdout] test input::tests::cost_explicit_null_treated_as_none ... ok
[INFO] [stdout] test input::tests::cost_missing_sub_field_degrades_leaf_only ... ok
[INFO] [stdout] test input::tests::cost_lines_added_accepts_large_value_without_truncation ... ok
[INFO] [stdout] test input::tests::cost_total_cost_usd_accepts_zero_and_tiny_positive ... ok
[INFO] [stdout] test input::tests::cost_total_cost_usd_non_numeric_degrades_leaf_only ... ok
[INFO] [stdout] test input::tests::cost_wrapper_with_all_leaves_drift_collapses_to_none ... ok
[INFO] [stdout] test input::tests::cost_wrong_type_degrades_to_none ... ok
[INFO] [stdout] test input::tests::current_usage_absent_is_none ... ok
[INFO] [stdout] test input::tests::current_usage_inner_missing_collapses_whole_turn_usage ... ok
[INFO] [stdout] test input::tests::current_usage_inner_null_collapses_whole_turn_usage ... ok
[INFO] [stdout] test input::tests::current_usage_inner_wrong_type_degrades_to_none ... ok
[INFO] [stdout] test input::tests::current_usage_missing_inner_field_degrades_to_none ... ok
[INFO] [stderr] linesmith [warn]: context_window.current_usage.input_tokens: expected unsigned integer, got String; degrading leaf to None
[INFO] [stderr] linesmith [warn]: context_window.current_usage: expected object, got String; degrading to None
[INFO] [stdout] test input::tests::current_usage_null_is_none ... ok
[INFO] [stderr] linesmith [warn]: context_window.total_output_tokens: null; degrading leaf to None (possible CC schema drift)
[INFO] [stdout] test input::tests::current_usage_present_parses_all_four_fields ... ok
[INFO] [stderr] linesmith [warn]: effort: expected object or string, got Number; degrading to None
[INFO] [stdout] test input::tests::current_usage_non_object_degrades_to_none ... ok
[INFO] [stdout] test input::tests::current_usage_survives_when_peer_leaf_is_null ... ok
[INFO] [stdout] test input::tests::effort_non_object_non_string_degrades_to_none ... ok
[INFO] [stdout] test input::tests::effort_bare_string_still_parses ... ok
[INFO] [stdout] test input::tests::effort_object_form_parses ... ok
[INFO] [stderr] linesmith [warn]: effort.level: expected string, got Number; degrading to None
[INFO] [stderr] linesmith [warn]: effort: wrapper present but `level` missing; degrading to None (possible CC schema drift)
[INFO] [stderr] linesmith [warn]: effort: unknown level "ultra" at effort.level; degrading to None (possible CC schema drift — known: low, medium, high, max, xhigh)
[INFO] [stderr] linesmith [warn]: effort: unknown level "ultra" at effort; degrading to None (possible CC schema drift — known: low, medium, high, max, xhigh)
[INFO] [stdout] test input::tests::effort_object_non_string_level_degrades_to_none ... ok
[INFO] [stdout] test input::tests::effort_object_missing_level_degrades_to_none ... ok
[INFO] [stdout] test input::tests::effort_object_null_level_maps_to_none ... ok
[INFO] [stdout] test input::tests::effort_object_unknown_level_degrades_to_none ... ok
[INFO] [stderr] linesmith [warn]: context_window.context_window_size: null; degrading leaf to None (possible CC schema drift)
[INFO] [stdout] test input::tests::effort_top_level_null_maps_to_none ... ok
[INFO] [stdout] test input::tests::effort_unknown_string_degrades_to_none ... ok
[INFO] [stdout] test input::tests::empty_object_payload_returns_all_none_top_level ... ok
[INFO] [stdout] test input::tests::git_worktree_absent_key_treated_as_none ... ok
[INFO] [stdout] test input::tests::malformed_json_carries_exact_source_position ... ok
[INFO] [stdout] test input::tests::json_type_of_maps_each_variant ... ok
[INFO] [stdout] test input::tests::missing_model_degrades_to_none ... ok
[INFO] [stdout] test input::tests::missing_used_percentage_degrades_leaf_to_none ... ok
[INFO] [stdout] test input::tests::null_context_window_size_degrades_leaf_only ... ok
[INFO] [stderr] linesmith [warn]: context_window.total_input_tokens: null; degrading leaf to None (possible CC schema drift)
[INFO] [stdout] test input::tests::null_used_percentage_degrades_leaf_only ... ok
[INFO] [stdout] test input::tests::null_total_input_tokens_degrades_leaf_only ... ok
[INFO] [stdout] test input::tests::null_total_output_tokens_degrades_leaf_only ... ok
[INFO] [stdout] test input::tests::out_of_range_number_rejected_at_json_layer ... ok
[INFO] [stdout] test input::tests::output_style_name_typed_wrong_degrades_to_none ... ok
[INFO] [stdout] test input::tests::output_style_absent_or_null_yields_none ... ok
[INFO] [stdout] test input::tests::output_style_non_object_degrades_to_none ... ok
[INFO] [stderr] linesmith [warn]: context_window.total_output_tokens: null; degrading leaf to None (possible CC schema drift)
[INFO] [stderr] linesmith [warn]: output_style.name: expected string, got Number; degrading to None
[INFO] [stderr] linesmith [warn]: output_style: wrapper present but `name` field missing; degrading to None (possible CC schema drift)
[INFO] [stderr] linesmith [warn]: output_style: expected object, got String; degrading to None
[INFO] [stdout] test input::tests::parses_agent_name ... ok
[INFO] [stdout] test input::tests::parses_context_window ... ok
[INFO] [stdout] test input::tests::parse_error_display_formats_root_path_readably ... ok
[INFO] [stdout] test input::tests::parses_minimal_claude_payload ... ok
[INFO] [stdout] test input::tests::parses_output_style ... ok
[INFO] [stdout] test input::tests::parses_top_level_version_string ... ok
[INFO] [stdout] test input::tests::parses_payload_with_worktree ... ok
[INFO] [stdout] test input::tests::parses_vim_object_form ... ok
[INFO] [stdout] test input::tests::parses_vim_string_form_for_compat ... ok
[INFO] [stdout] test input::tests::percent_from_f64_clamped_clamps_finite_values_and_rejects_nan ... ok
[INFO] [stdout] test input::tests::percent_from_f64_rejects_values_that_would_narrow_into_range ... ok
[INFO] [stdout] test input::tests::percent_complement_stays_in_range ... ok
[INFO] [stdout] test input::tests::percent_new_rejects_out_of_range ... ok
[INFO] [stdout] test input::tests::pre_first_api_call_payload_renders_other_segments ... ok
[INFO] [stdout] test input::tests::rejects_malformed_json ... ok
[INFO] [stdout] test input::tests::used_percentage_above_100_clamps_instead_of_rejecting ... ok
[INFO] [stdout] test input::tests::used_percentage_below_0_rejects_as_invalid_value ... ok
[INFO] [stderr] linesmith [warn]: context_window.used_percentage = 150 > 100; clamping to 100
[INFO] [stderr] linesmith [warn]: context_window.used_percentage = 101.7 > 100; clamping to 100
[INFO] [stdout] test input::tests::used_percentage_in_range_passes_through_unchanged ... ok
[INFO] [stdout] test input::tests::used_percentage_fractional_overshoot_clamps_to_100 ... ok
[INFO] [stderr] linesmith [warn]: version: expected string, got Number; degrading to None
[INFO] [stdout] test input::tests::version_absent_or_null_or_empty_yields_none ... ok
[INFO] [stdout] test input::tests::version_surrounding_whitespace_is_trimmed ... ok
[INFO] [stdout] test input::tests::version_typed_wrong_degrades_to_none ... ok
[INFO] [stdout] test data_context::jsonl::tests::tailer_reads_all_lines_on_first_call ... ok
[INFO] [stderr] linesmith [warn]: vim.mode: expected string, got Number; degrading to None
[INFO] [stderr] linesmith [warn]: vim: expected object or string, got Number; degrading to None
[INFO] [stderr] linesmith [warn]: vim: wrapper present but `mode` missing; degrading to None (possible CC schema drift)
[INFO] [stdout] test input::tests::vim_absent_or_null_yields_none ... ok
[INFO] [stdout] test input::tests::vim_object_non_string_mode_degrades_to_none ... ok
[INFO] [stdout] test input::tests::vim_non_object_non_string_degrades_to_none ... ok
[INFO] [stderr] linesmith [warn]: vim: unknown mode "surrogate" at vim.mode; degrading to None (possible CC schema drift — known: normal, insert, visual, command, replace)
[INFO] [stderr] linesmith [warn]: context_window.used_percentage: expected number, got String; degrading leaf to None
[INFO] [stderr] linesmith [warn]: workspace.git_worktree: expected object, got String; degrading to None (worktree only)
[INFO] [stdout] test input::tests::vim_object_missing_mode_degrades_to_none ... ok
[INFO] [stdout] test input::tests::vim_unknown_mode_degrades_segment_not_whole_parse ... ok
[INFO] [stdout] test layout::tests::apply_width_bounds_drops_below_min ... ok
[INFO] [stdout] test layout::tests::apply_width_bounds_none_is_passthrough ... ok
[INFO] [stdout] test layout::tests::apply_width_bounds_passthrough_within_range ... ok
[INFO] [stdout] test input::tests::wrong_type_used_percentage_degrades_leaf_to_none ... ok
[INFO] [stdout] test layout::tests::apply_width_bounds_truncates_above_max ... ok
[INFO] [stdout] test layout::tests::drops_highest_priority_under_pressure ... ok
[INFO] [stdout] test layout::tests::drops_in_descending_priority_order ... ok
[INFO] [stdout] test layout::tests::empty_input_renders_empty_string ... ok
[INFO] [stdout] test layout::tests::no_trailing_separator ... ok
[INFO] [stdout] test layout::tests::no_width_pressure_renders_all_with_separators ... ok
[INFO] [stdout] test layout::tests::non_truncatable_drops_unchanged_under_pressure ... ok
[INFO] [stdout] test layout::tests::ok_none_is_silently_hidden ... ok
[INFO] [stdout] test layout::tests::osc8_pair_balanced_when_hyperlinked_run_is_truncated ... ok
[INFO] [stdout] test layout::tests::osc8_pair_balanced_when_hyperlinked_run_truncated_to_zero ... ok
[INFO] [stdout] test layout::tests::powerline_chevrons_are_charged_to_total_width_in_layout ... ok
[INFO] [stdout] test layout::tests::powerline_separator_emits_padded_chevron_with_correct_width ... ok
[INFO] [stdout] test layout::tests::priority_drop_recomputes_budget_with_powerline_separators ... ok
[INFO] [stdout] test layout::tests::priority_ties_drop_rightmost_first ... ok
[INFO] [stdout] test layout::tests::priority_zero_never_drops_even_over_budget ... ok
[INFO] [stdout] test layout::tests::push_osc8_open_strips_c1_string_terminator_and_nul ... ok
[INFO] [stdout] test layout::tests::push_osc8_open_strips_control_chars_from_url ... ok
[INFO] [stdout] test layout::tests::reflow_does_not_touch_priority_zero_even_when_truncatable ... ok
[INFO] [stdout] test layout::tests::reflow_drops_when_truncation_would_fall_below_floor ... ok
[INFO] [stdout] test layout::tests::reflow_iterates_when_first_truncation_insufficient ... ok
[INFO] [stdout] test layout::tests::reflow_respects_explicit_width_min_floor ... ok
[INFO] [stdout] test layout::tests::all_priority_zero_keeps_every_segment_even_when_overfull ... ok
[INFO] [stdout] test layout::tests::reflow_truncates_highest_priority_before_dropping ... ok
[INFO] [stdout] test layout::tests::mix_drops_positives_keeps_zeros ... ok
[INFO] [stdout] test input::tests::wrong_type_git_worktree_degrades_to_none ... ok
[INFO] [stdout] test layout::tests::render_context_threads_terminal_width_into_segments ... ok
[INFO] [stdout] test layout::tests::render_items_wraps_each_styled_segment_under_palette16 ... ok
[INFO] [stdout] test layout::tests::render_override_separator_beats_default ... ok
[INFO] [stdout] test layout::tests::render_to_runs_drops_segments_under_width_pressure ... ok
[INFO] [stdout] test layout::tests::render_to_runs_emits_literal_separator_with_default_style ... ok
[INFO] [stdout] test layout::tests::render_to_runs_emits_powerline_chevron_with_muted_role ... ok
[INFO] [stdout] test layout::tests::render_to_runs_emits_segment_then_separator_then_segment ... ok
[INFO] [stdout] test layout::tests::render_to_runs_empty_input_yields_no_runs ... ok
[INFO] [stdout] test layout::tests::render_to_runs_round_trip_holds_under_capability_none ... ok
[INFO] [stdout] test layout::tests::render_to_runs_preserves_segment_style ... ok
[INFO] [stdout] test layout::tests::render_to_runs_skips_separator_none_between_segments ... ok
[INFO] [stdout] test layout::tests::render_to_runs_then_runs_to_ansi_matches_render_with_warn ... ok
[INFO] [stdout] test layout::tests::render_to_runs_with_one_survivor_emits_no_trailing_separator ... ok
[INFO] [stdout] test layout::tests::render_with_warn_constructs_render_context_from_terminal_width_arg ... ok
[INFO] [stdout] test layout::tests::render_to_runs_round_trip_holds_under_width_pressure ... ok
[INFO] [stdout] test layout::tests::render_to_runs_round_trip_holds_with_hyperlinks_enabled ... ok
[INFO] [stdout] test layout::tests::runs_to_ansi_capability_none_emits_unwrapped_text ... ok
[INFO] [stdout] test layout::tests::render_with_warn_emits_powerline_chevron_wrapped_in_muted_sgr ... ok
[INFO] [stdout] test layout::tests::respects_custom_separator_from_defaults ... ok
[INFO] [stdout] test layout::tests::runs_to_ansi_drops_hyperlink_when_not_supported ... ok
[INFO] [stdout] test layout::tests::runs_to_ansi_emits_osc8_around_styled_run_when_hyperlinks_supported ... ok
[INFO] [stdout] test layout::tests::runs_to_ansi_emits_independent_osc8_pairs_for_adjacent_hyperlinked_runs ... ok
[INFO] [stdout] test layout::tests::runs_to_ansi_emits_no_osc8_when_style_has_no_hyperlink ... ok
[INFO] [stdout] test layout::tests::runs_to_ansi_emits_osc8_around_unstyled_run ... ok
[INFO] [stdout] test layout::tests::segment_error_is_logged_and_hides_segment ... ok
[INFO] [stdout] test layout::tests::separator_none_not_charged_to_budget ... ok
[INFO] [stderr] linesmith [warn]: segment shrink_to_fit returned width 17 > target 3; rejecting
[INFO] [stderr] linesmith [debug]: x
[INFO] [stdout] test layout::tests::shrink_to_fit_falls_back_to_drop_when_compact_form_too_wide ... ok
[INFO] [stderr] linesmith [warn]: ctx.status.raw: 1 subtree(s) collapsed at depth 32
[INFO] [stdout] test layout::tests::shrink_to_fit_replaces_full_render_when_compact_form_fits ... ok
[INFO] [stderr] linesmith [warn]: ctx.status.raw: 1 subtree(s) collapsed at depth 32
[INFO] [stdout] test layout::tests::shrink_to_fit_honors_configured_width_min_floor ... ok
[INFO] [stdout] test layout::tests::shrink_to_fit_rejects_too_wide_response_and_drops ... ok
[INFO] [stdout] test layout::tests::total_width_counts_inter_segment_separators_only ... ok
[INFO] [stdout] test layout::tests::total_width_zero_for_empty ... ok
[INFO] [stdout] test layout::tests::total_width_single_segment_has_no_separator ... ok
[INFO] [stdout] test layout::tests::truncate_does_not_split_zwj_emoji_sequence ... ok
[INFO] [stdout] test layout::tests::shrink_to_fit_runs_before_truncatable_end_ellipsis ... ok
[INFO] [stdout] test layout::tests::truncate_handles_wide_grapheme_without_splitting ... ok
[INFO] [stdout] test layout::tests::truncate_preserves_combining_mark_with_base ... ok
[INFO] [stdout] test layout::tests::truncate_to_max_cells_one_emits_only_ellipsis ... ok
[INFO] [stdout] test layout::tests::truncate_to_zero_yields_empty ... ok
[INFO] [stdout] test logging::tests::apply_keeps_level_when_env_unset ... ok
[INFO] [stdout] test logging::tests::apply_sets_recognized_level_without_writing ... ok
[INFO] [stdout] test logging::tests::apply_writes_warning_to_injected_sink_and_resets_to_default ... ok
[INFO] [stdout] test logging::tests::decide_init_parses_recognized_levels ... ok
[INFO] [stdout] test logging::tests::decide_init_warns_on_garbage ... ok
[INFO] [stdout] test logging::tests::default_level_is_warn ... ok
[INFO] [stdout] test logging::tests::emit_error_bypasses_off_level ... ok
[INFO] [stdout] test logging::tests::decide_init_keeps_default_when_env_unset ... ok
[INFO] [stdout] test logging::tests::debug_enables_every_lower_level ... ok
[INFO] [stdout] test logging::tests::emit_error_fires_at_every_level ... ok
[INFO] [stdout] test logging::tests::from_u8_roundtrips_known_bytes ... ok
[INFO] [stdout] test logging::tests::lsm_debug_skips_format_when_suppressed ... ok
[INFO] [stdout] test logging::tests::off_suppresses_every_level ... ok
[INFO] [stdout] test logging::tests::parse_accepts_common_aliases ... ok
[INFO] [stdout] test logging::tests::parse_rejects_error_and_info_aliases ... ok
[INFO] [stdout] test logging::tests::parse_rejects_garbage ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::config_is_passed_through_as_provided ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::context_window_current_usage_mirrors_all_four_fields ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::context_window_exposes_used_and_remaining_as_floats ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::cost_lines_fields_round_trip_as_i64 ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::declared_source_shows_up_as_tagged_error_when_stub ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::all_tool_variants_map_to_snake_case_kind ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::each_lazy_dep_surfaces_as_tagged_error_when_stub ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::effort_surfaces_as_snake_case_string ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::env_non_whitelisted_key_absent ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::git_dep_maps_ok_none_to_unit_data ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::env_whitelist_keys_present_even_when_env_is_empty ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::git_dep_maps_ok_some_to_populated_map ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::git_dep_reports_error_variant_when_gix_failed ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::raw_empty_array_and_object_round_trip ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::option_fields_become_unit_when_none ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::raw_json_nested_array_preserves_all_items_as_escape_hatch ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::raw_json_nested_arrays_beyond_max_depth_collapse_to_unit ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::raw_json_at_exact_max_depth_survives_one_deeper_collapses ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::raw_json_object_round_trips_recursively ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::raw_json_oversize_string_preserves_full_content_as_escape_hatch ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::raw_u64_above_i64_max_falls_through_to_f64 ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::tool_claude_code_has_only_kind ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::tool_other_carries_forensic_name ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::top_level_has_status_config_env ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::undeclared_sources_absent ... ok
[INFO] [stderr] linesmith [warn]: ctx.usage.unknown_buckets: truncated to 256 entries (source had 266)
[INFO] [stdout] test plugins::ctx_mirror::tests::raw_json_nested_object_preserves_all_entries_as_escape_hatch ... ok
[INFO] [stderr] linesmith [warn]: ctx.usage.unknown_buckets: dropped 1 entries with keys longer than 1024 bytes
[INFO] [stdout] test plugins::ctx_mirror::tests::unknown_buckets_at_exact_max_map_size_are_not_truncated ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::unknown_buckets_key_at_exact_max_string_size_survives ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::unknown_buckets_truncation_survives_deterministically ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::unknown_buckets_drop_oversize_keys ... ok
[INFO] [stderr] linesmith [warn]: ctx.usage.unknown_buckets (values): 1 array(s) truncated at 256 items
[INFO] [stdout] test plugins::ctx_mirror::tests::unknown_buckets_value_depth_resets_per_entry ... ok
[INFO] [stderr] linesmith [warn]: ctx.usage.unknown_buckets (values): 1 string(s) truncated at 1024 bytes
[INFO] [stdout] test plugins::ctx_mirror::tests::unknown_buckets_value_nested_array_truncates_under_strict ... ok
[INFO] [stderr] linesmith [warn]: ctx.usage.unknown_buckets (values): 1 map(s) truncated at 256 entries
[INFO] [stdout] test plugins::ctx_mirror::tests::unknown_buckets_value_multibyte_string_truncates_at_utf8_boundary ... ok
[INFO] [stderr] linesmith [warn]: ctx.usage.unknown_buckets (values): 1 string(s) truncated at 1024 bytes
[INFO] [stdout] test plugins::ctx_mirror::tests::unknown_buckets_value_oversize_string_is_truncated_under_strict ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::usage_endpoint_mirror_preserves_every_field_plugins_depend_on ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::unknown_buckets_value_nested_object_truncates_under_strict ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::usage_jsonl_variant_with_no_active_block_exposes_unit_five_hour ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::version_surfaces_as_string_when_present ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::vim_output_style_agent_name_surface_as_strings_when_present ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::workspace_without_worktree_emits_unit ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::workspace_worktree_preserves_name_and_path ... ok
[INFO] [stdout] test plugins::ctx_mirror::tests::usage_jsonl_variant_mirrors_tokens_and_ends_at ... ok
[INFO] [stdout] test layout::tests::total_width_returns_u32_beyond_u16_range ... ok
[INFO] [stdout] test logging::tests::from_u8_debug_panics_on_out_of_range - should panic ... ok
[INFO] [stdout] test plugins::output::tests::control_chars_in_plugin_separator_are_stripped ... ok
[INFO] [stdout] test plugins::output::tests::all_separator_strings_map_correctly ... ok
[INFO] [stdout] test plugins::output::tests::decoration_wrong_type_rejected ... ok
[INFO] [stdout] test plugins::output::tests::control_chars_in_plugin_text_are_stripped ... ok
[INFO] [stdout] test data_context::git::tests::upstream_reports_ahead_only_when_local_leads ... ok
[INFO] [stdout] test plugins::output::tests::empty_hyperlink_string_does_not_set_link ... ok
[INFO] [stdout] test plugins::output::tests::hex_color_empty_body_rejected ... ok
[INFO] [stdout] test plugins::output::tests::hex_color_alpha_form_rejected ... ok
[INFO] [stdout] test plugins::output::tests::hex_color_missing_hash_rejected ... ok
[INFO] [stdout] test plugins::output::tests::hex_color_wrong_length_rejected ... ok
[INFO] [stdout] test plugins::output::tests::hex_color_uppercase_accepted ... ok
[INFO] [stdout] test data_context::git::tests::upstream_reports_zero_ahead_zero_behind_when_in_sync ... ok
[INFO] [stdout] test plugins::output::tests::empty_runs_rejected ... ok
[INFO] [stdout] test plugins::output::tests::multi_run_rejected_with_deferred_note ... ok
[INFO] [stdout] test plugins::output::tests::hex_color_non_hex_digits_rejected ... ok
[INFO] [stdout] test plugins::output::tests::missing_runs_key_rejected ... ok
[INFO] [stdout] test plugins::output::tests::non_string_hyperlink_rejected ... ok
[INFO] [stdout] test plugins::output::tests::right_separator_empty_string_is_literal ... ok
[INFO] [stdout] test plugins::output::tests::hyperlink_field_threads_to_style ... ok
[INFO] [stdout] test plugins::output::tests::right_separator_literal_preserves_user_string ... ok
[INFO] [stdout] test plugins::output::tests::run_text_wrong_type_rejected ... ok
[INFO] [stdout] test plugins::output::tests::non_map_non_unit_return_rejected ... ok
[INFO] [stdout] test plugins::output::tests::runs_element_non_map_rejected ... ok
[INFO] [stdout] test plugins::output::tests::right_separator_space ... ok
[INFO] [stdout] test plugins::output::tests::run_without_text_rejected ... ok
[INFO] [stdout] test plugins::output::tests::runs_field_non_array_rejected ... ok
[INFO] [stdout] test plugins::output::tests::single_run_with_role ... ok
[INFO] [stdout] test plugins::output::tests::single_run_with_decorations ... ok
[INFO] [stdout] test plugins::output::tests::right_separator_non_string_rejected ... ok
[INFO] [stdout] test plugins::output::tests::unsupported_bg_field_silently_ignored ... ok
[INFO] [stdout] test plugins::segment::tests::deadline_abort_surfaces_clear_segment_error ... ok
[INFO] [stdout] test plugins::segment::tests::declared_deps_surface_via_trait ... ok
[INFO] [stdout] test plugins::segment::tests::dep_from_token_covers_every_known_dep ... ok
[INFO] [stdout] test plugins::output::tests::single_run_with_hex_fg ... ok
[INFO] [stdout] test plugins::output::tests::single_run_text_only ... ok
[INFO] [stdout] test plugins::output::tests::unit_return_hides_segment ... ok
[INFO] [stdout] test plugins::output::tests::unknown_role_rejected ... ok
[INFO] [stdout] test plugins::segment::tests::known_deps_surface_through_segment_render_pipeline ... ok
[INFO] [stdout] test plugins::segment::tests::plugin_can_read_ctx_env_from_rhai_side ... ok
[INFO] [stdout] test plugins::segment::tests::plugin_receives_config_passed_in ... ok
[INFO] [stdout] test plugins::segment::tests::plugin_can_read_terminal_width_from_ctx_render ... ok
[INFO] [stdout] test plugins::segment::tests::operation_limit_kills_infinite_loop_without_hang ... ok
[INFO] [stdout] test plugins::segment::tests::plugin_returning_single_run_renders ... ok
[INFO] [stdout] test plugins::segment::tests::plugin_returning_malformed_shape_maps_to_segment_error ... ok
[INFO] [stdout] test plugins::segment::tests::plugin_throw_cannot_impersonate_deadline_abort ... ok
[INFO] [stdout] test plugins::segment::tests::plugin_runtime_error_maps_to_segment_error ... ok
[INFO] [stdout] test plugins::segment::tests::plugin_sees_status_fields_via_ctx ... ok
[INFO] [stdout] test plugins::segment::tests::plugin_returning_unit_hides_segment ... ok
[INFO] [stdout] test plugins::segment::tests::render_state_drop_clears_thread_locals ... ok
[INFO] [stdout] test presets::tests::body_lookup_is_case_sensitive ... ok
[INFO] [stdout] test presets::tests::cost_focused_preset_segments_match_spec ... ok
[INFO] [stdout] test presets::tests::developer_preset_segments_match_spec ... ok
[INFO] [stdout] test presets::tests::body_returns_none_for_unknown_name ... ok
[INFO] [stdout] test presets::tests::minimal_preset_segments_are_model_and_context_window ... ok
[INFO] [stdout] test presets::tests::preset_names_are_unique ... ok
[INFO] [stdout] test presets::tests::every_preset_parses_without_warnings ... ok
[INFO] [stdout] test presets::tests::registry_has_five_presets_in_stable_order ... ok
[INFO] [stdout] test presets::tests::power_user_preset_is_multi_line_with_two_lines ... ok
[INFO] [stdout] test runtime::config::tests::parse_error_preserves_validation_warnings_collected_before_type_mismatch ... ok
[INFO] [stdout] test segments::agent::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::agent::tests::renders_active_agent ... ok
[INFO] [stdout] test segments::builder::tests::apply_layout_separator_wraps_when_configured_literal_replaces_space_default ... ok
[INFO] [stdout] test segments::builder::tests::apply_layout_separator_wraps_when_configured_none_replaces_space_default ... ok
[INFO] [stdout] test segments::agent::tests::hidden_when_absent ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_does_not_promote_when_segments_populated ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_multi_line_dedupes_within_line_but_not_across_lines ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_default_layout_with_numbered_tables_warns_and_ignores_them ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_multi_line_drops_non_numeric_keys_with_warning ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_multi_line_drops_zero_and_negative_keys ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_multi_line_ignores_top_level_segments_when_numbered_present ... ok
[INFO] [stdout] test presets::tests::worktree_heavy_preset_segments_match_spec ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_multi_line_returns_one_inner_vec_per_numbered_table ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_multi_line_sorts_by_parsed_integer_not_lexicographic ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_multi_line_warns_per_empty_numbered_segments ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_multi_line_with_no_numbered_tables_falls_back_to_single_line ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_multi_line_with_only_invalid_keys_falls_back_to_single_line ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_promotes_to_multi_line_when_layout_unset_and_segments_empty ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_single_line_default_returns_one_line_with_default_segments ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_single_line_with_numbered_tables_warns_and_ignores_them ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_unknown_scalar_key_under_line_warns_and_drops ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_applies_priority_override ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_consumed_plugins_threads_across_three_or_more_lines ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_applies_width_override ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_dedupes_duplicates_with_warning ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_empty_config_falls_back_to_defaults ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_falls_back_to_line_one_even_when_top_segments_populated ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_falls_back_to_first_line_for_multi_line_configs ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_forward_compat_keys_dont_break_parsing ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_multi_line_with_only_invalid_numbered_keys_falls_through_to_single_line ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_uses_default_order_when_config_missing ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_warns_on_explicitly_empty_segment_list ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_warns_on_inverted_width_bounds ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_skips_unknown_ids_and_warns ... ok
[INFO] [stdout] test segments::builder::tests::build_segments_uses_configured_line_order ... ok
[INFO] [stdout] test segments::builder::tests::empty_style_string_is_noop_and_preserves_segment_declared_style ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_absent_section_resolves_to_space ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_arbitrary_string_renders_as_literal ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_capsule_warns_and_falls_back_to_space ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_does_not_double_wrap_when_default_already_powerline ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_empty_string_yields_none ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_handles_mixed_case_and_whitespace ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_pipe_literal_no_warning ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_powerline_overrides_runtime_right_separator ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_powerline_preserves_runtime_literal_right_separator ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_powerline_swaps_default_separator ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_preserves_segment_literal_default ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_preserves_segment_none_default ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_single_space_renders_as_literal_not_keyword ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_space_is_passthrough ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_typo_renders_as_literal_not_warn ... ok
[INFO] [stdout] test segments::builder::tests::layout_separator_whitespace_only_renders_as_literal ... ok
[INFO] [stdout] test segments::builder::tests::invalid_style_string_warns_and_leaves_segment_style_unchanged ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_plugin_referenced_in_two_lines_warns_specifically_on_second ... ok
[INFO] [stdout] test segments::builder::tests::plugin_runtime_space_emits_chevron_through_render_with_warn ... ok
[INFO] [stdout] test segments::builder::tests::powerline_width_2_propagates_to_separator_variant ... ok
[INFO] [stdout] test segments::builder::tests::powerline_width_default_is_1_when_unset ... ok
[INFO] [stdout] test segments::builder::tests::plugin_id_resolves_through_build_segments ... ok
[INFO] [stdout] test segments::builder::tests::powerline_width_max_warns_and_falls_back_to_1 ... ok
[INFO] [stdout] test segments::builder::tests::powerline_width_zero_warns_and_falls_back_to_1 ... ok
[INFO] [stdout] test segments::builder::tests::style_override_replaces_segment_declared_style_at_render_time ... ok
[INFO] [stdout] test segments::builder::tests::built_in_id_wins_over_plugin_with_same_id ... ok
[INFO] [stdout] test segments::builder::tests::style_override_with_explicit_fg_populates_fg_slot ... ok
[INFO] [stdout] test segments::builder::tests::powerline_width_invalid_warns_and_falls_back_to_1 ... ok
[INFO] [stdout] test segments::builder::tests::whitespace_only_style_string_is_noop_and_preserves_segment_declared_style ... ok
[INFO] [stdout] test segments::builder::tests::width_merge_both_sides_override_inner_default ... ok
[INFO] [stdout] test segments::builder::tests::width_merge_empty_override_keeps_inner_default ... ok
[INFO] [stdout] test segments::builder::tests::width_merge_max_only_inherits_min_from_inner_default ... ok
[INFO] [stdout] test segments::builder::tests::width_merge_min_only_inherits_max_from_inner_default ... ok
[INFO] [stdout] test segments::context_bar::tests::cells_one_below_half_renders_empty_with_color_role ... ok
[INFO] [stdout] test segments::context_bar::tests::custom_width_changes_bar_length ... ok
[INFO] [stdout] test segments::context_bar::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::context_bar::tests::frac_above_half_renders_partial_distinct_from_round ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_accepts_high_pair_above_defaults ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_accepts_low_pair_below_defaults ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_partial_characters_override_leaves_others_default ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_reads_characters_table ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_reads_thresholds_table ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_rejects_inverted_pair_and_keeps_defaults ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_rejects_lone_green_against_default_yellow ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_rejects_multi_cell_glyph ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_sets_width ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_warns_on_negative_width ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_warns_on_non_string_character ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_warns_on_zero_width ... ok
[INFO] [stdout] test segments::context_bar::tests::from_extras_warns_when_threshold_out_of_range ... ok
[INFO] [stdout] test segments::context_bar::tests::green_at_one_below_threshold ... ok
[INFO] [stdout] test segments::context_bar::tests::hidden_when_context_window_absent ... ok
[INFO] [stdout] test segments::context_bar::tests::one_cell_width_renders_single_char ... ok
[INFO] [stdout] test segments::context_bar::tests::pct_is_rounded_before_threshold_so_text_and_bar_agree ... ok
[INFO] [stdout] test data_context::git::tests::upstream_reports_both_when_diverged ... ok
[INFO] [stdout] test segments::context_bar::tests::pct_round_ties_to_even_matches_format_rounding ... ok
[INFO] [stdout] test segments::context_bar::tests::priority_drops_before_context_window ... ok
[INFO] [stdout] test segments::context_bar::tests::frac_just_below_half_drops_partial_block ... ok
[INFO] [stdout] test segments::context_bar::tests::red_threshold_at_eighty_percent ... ok
[INFO] [stdout] test segments::context_bar::tests::rendered_width_matches_configured_cells_for_default_chars ... ok
[INFO] [stdout] test segments::context_bar::tests::renders_fifty_percent_at_threshold_boundary_yellow ... ok
[INFO] [stdout] test segments::context_bar::tests::renders_full_at_one_hundred ... ok
[INFO] [stdout] test segments::context_bar::tests::renders_partial_block_when_fraction_geq_half ... ok
[INFO] [stdout] test segments::context_bar::tests::renders_zero_percent_as_all_empty ... ok
[INFO] [stdout] test segments::context_bar::tests::rounds_down_when_fraction_lt_half ... ok
[INFO] [stdout] test segments::context_bar::tests::thresholds_new_rejects_inverted ... ok
[INFO] [stdout] test segments::context_bar::tests::yellow_at_one_below_red_threshold ... ok
[INFO] [stdout] test segments::context_window::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::context_window::tests::format_size_non_round_values_rendered_literally ... ok
[INFO] [stdout] test segments::context_window::tests::format_size_round_millions_use_m_suffix ... ok
[INFO] [stdout] test segments::context_window::tests::format_size_round_values_use_k_suffix ... ok
[INFO] [stdout] test segments::context_window::tests::format_size_zero_renders_literally ... ok
[INFO] [stdout] test segments::context_window::tests::hidden_when_both_used_and_size_null ... ok
[INFO] [stdout] test segments::context_window::tests::hidden_when_context_window_absent ... ok
[INFO] [stdout] test segments::builder::tests::build_lines_explicit_single_line_returns_one_line_from_segments ... ok
[INFO] [stdout] test segments::context_window::tests::renders_one_million_size_as_m_suffix ... ok
[INFO] [stdout] test segments::context_window::tests::renders_non_round_size_literally ... ok
[INFO] [stdout] test segments::context_window::tests::renders_percent_only_when_size_is_null ... ok
[INFO] [stdout] test segments::context_window::tests::renders_size_only_when_used_is_null ... ok
[INFO] [stdout] test segments::context_window::tests::renders_percent_and_sonnet_200k ... ok
[INFO] [stdout] test segments::cost::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::cost::tests::hidden_when_cost_absent ... ok
[INFO] [stdout] test segments::cost::tests::renders_two_decimal_places_with_muted_role ... ok
[INFO] [stdout] test segments::cost::tests::renders_zero_cost ... ok
[INFO] [stdout] test segments::effort::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::effort::tests::hidden_when_effort_absent ... ok
[INFO] [stdout] test segments::effort::tests::renders_each_level ... ok
[INFO] [stdout] test segments::extra_usage::tests::currency_falls_back_to_percent_when_monthly_limit_missing ... ok
[INFO] [stdout] test segments::extra_usage::tests::declares_usage_as_its_only_data_dep ... ok
[INFO] [stdout] test segments::extra_usage::tests::from_extras_applies_extra_usage_format_knobs ... ok
[INFO] [stdout] test segments::extra_usage::tests::from_extras_warns_on_duration_format_string ... ok
[INFO] [stdout] test segments::extra_usage::tests::hidden_under_jsonl_fallback ... ok
[INFO] [stdout] test segments::extra_usage::tests::hidden_when_extra_usage_missing ... ok
[INFO] [stdout] test segments::extra_usage::tests::hidden_when_is_enabled_false ... ok
[INFO] [stdout] test segments::extra_usage::tests::renders_error_instead_of_hiding_when_fetch_fails ... ok
[INFO] [stdout] test segments::extra_usage::tests::renders_percent_format_when_configured ... ok
[INFO] [stdout] test segments::extra_usage::tests::non_usd_currency_renders_iso_code_prefix ... ok
[INFO] [stdout] test segments::extra_usage::tests::renders_remaining_credits_in_currency_format ... ok
[INFO] [stdout] test segments::git_branch::tests::ahead_behind_hidden_when_terminal_width_below_threshold ... ok
[INFO] [stdout] test segments::git_branch::tests::ahead_behind_hide_when_zero_and_hide_below_cells_compose_multiplicatively ... ok
[INFO] [stdout] test segments::git_branch::tests::applies_icon_and_label_when_configured ... ok
[INFO] [stdout] test segments::git_branch::tests::declares_git_data_dep ... ok
[INFO] [stdout] test segments::git_branch::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::git_branch::tests::default_templates_contain_placeholder ... ok
[INFO] [stdout] test segments::git_branch::tests::dirty_hide_below_cells_default_zero_keeps_existing_behavior ... ok
[INFO] [stdout] test segments::git_branch::tests::enabled_false_overrides_hide_below_cells ... ok
[INFO] [stdout] test segments::git_branch::tests::dirty_marker_hidden_when_terminal_width_below_threshold ... ok
[INFO] [stdout] test segments::git_branch::tests::format_template_parse_rejects_missing_placeholder ... ok
[INFO] [stdout] test segments::git_branch::tests::format_template_render_substitutes_placeholder ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_counts_mode_warns_and_falls_back_to_indicator ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_hidden_format_turns_dirty_off ... ok
[INFO] [stdout] test segments::context_bar::tests::pct_is_rounded_so_high_fractional_paints_red_with_full_bar ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_reads_dirty_hide_below_cells ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_reads_icon_label_and_dirty_knobs ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_rejects_max_length_wrong_type ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_rejects_max_length_zero ... ok
[INFO] [stdout] test segments::builder::tests::unknown_id_with_plugin_registry_still_warns ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_warns_on_ahead_format_missing_placeholder ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_warns_on_behind_format_missing_placeholder ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_warns_on_negative_hide_below_cells_and_keeps_default ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_reads_ahead_behind_hide_below_cells ... ok
[INFO] [stdout] test segments::git_branch::tests::hides_ahead_behind_when_no_upstream_by_default ... ok
[INFO] [stdout] test segments::git_branch::tests::hides_ahead_behind_when_zero_by_default ... ok
[INFO] [stdout] test segments::git_branch::tests::hides_on_bare_repo ... ok
[INFO] [stdout] test segments::git_branch::tests::hides_on_gix_error ... ok
[INFO] [stdout] test segments::git_branch::tests::hides_when_not_in_repo ... ok
[INFO] [stdout] test segments::git_branch::tests::per_marker_thresholds_compose_independently ... ok
[INFO] [stdout] test segments::git_branch::tests::renders_ahead_when_local_leads ... ok
[INFO] [stdout] test segments::git_branch::tests::renders_ahead_with_custom_format ... ok
[INFO] [stdout] test segments::git_branch::tests::renders_both_when_diverged ... ok
[INFO] [stdout] test segments::git_branch::tests::renders_branch_name ... ok
[INFO] [stdout] test segments::git_branch::tests::renders_detached_as_short_sha_in_parens ... ok
[INFO] [stdout] test segments::git_branch::tests::renders_other_ref_full_name ... ok
[INFO] [stdout] test segments::git_branch::tests::renders_question_mark_when_no_upstream_opted_in ... ok
[INFO] [stdout] test segments::git_branch::tests::renders_submodule_like_main ... ok
[INFO] [stdout] test segments::git_branch::tests::renders_unborn_as_symbolic_ref_name ... ok
[INFO] [stdout] test segments::git_branch::tests::shows_zeros_when_configured ... ok
[INFO] [stdout] test segments::context_window::tests::rounds_percent_to_nearest_integer ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_reads_ahead_behind_knobs ... ok
[INFO] [stdout] test segments::git_branch::tests::from_extras_rejects_short_sha_length_out_of_range ... ok
[INFO] [stdout] test segments::git_branch::tests::renders_behind_when_remote_leads ... ok
[INFO] [stdout] test segments::git_branch::tests::shrink_to_fit_keeps_configured_icon_and_label_in_compact_form ... ok
[INFO] [stdout] test segments::git_branch::tests::shrink_to_fit_returns_compact_form_when_target_fits ... ok
[INFO] [stdout] test segments::git_branch::tests::shrink_to_fit_returns_none_in_bare_repo ... ok
[INFO] [stdout] test segments::git_branch::tests::shrink_to_fit_returns_none_outside_repo ... ok
[INFO] [stdout] test segments::git_branch::tests::shrink_to_fit_returns_none_when_even_compact_form_overflows ... ok
[INFO] [stdout] test segments::git_branch::tests::shrink_to_fit_strips_markers_even_when_thresholds_would_keep_them ... ok
[INFO] [stdout] test segments::git_branch::tests::skips_ahead_behind_on_detached_head ... ok
[INFO] [stdout] test segments::git_branch::tests::skips_ahead_behind_on_other_ref_head ... ok
[INFO] [stdout] test segments::git_branch::tests::skips_ahead_behind_on_unborn_head ... ok
[INFO] [stdout] test segments::git_branch::tests::skips_ahead_behind_on_unborn_head_even_with_hide_when_no_upstream_false ... ok
[INFO] [stdout] test segments::git_branch::tests::truncate_middle_degrades_when_marker_exceeds_budget ... ok
[INFO] [stdout] test segments::git_branch::tests::truncate_middle_preserves_prefix_and_suffix ... ok
[INFO] [stdout] test segments::layout_type_tests::apply_separator_override_passes_through_when_no_override ... ok
[INFO] [stdout] test segments::layout_type_tests::apply_separator_override_passes_through_when_runtime_separator_is_none ... ok
[INFO] [stdout] test segments::git_branch::tests::truncate_middle_handles_zero_budget ... ok
[INFO] [stdout] test segments::git_branch::tests::truncate_middle_keeps_short_strings_verbatim ... ok
[INFO] [stdout] test segments::layout_type_tests::apply_separator_override_preserves_explicit_runtime_none ... ok
[INFO] [stdout] test segments::layout_type_tests::apply_separator_override_replaces_runtime_theme ... ok
[INFO] [stdout] test segments::layout_type_tests::built_in_by_id_resolves_additional_documented_ids ... ok
[INFO] [stdout] test segments::layout_type_tests::builders_chain_on_segment_defaults ... ok
[INFO] [stdout] test segments::layout_type_tests::built_in_by_id_resolves_every_default_segment ... ok
[INFO] [stdout] test segments::layout_type_tests::overridden_segment_delegates_render_to_inner ... ok
[INFO] [stdout] test segments::layout_type_tests::built_in_by_id_resolves_every_id_in_built_in_segment_ids ... ok
[INFO] [stdout] test segments::layout_type_tests::built_in_by_id_threads_extras_to_version_segment ... ok
[INFO] [stdout] test segments::layout_type_tests::overridden_segment_replaces_default_separator ... ok
[INFO] [stdout] test segments::layout_type_tests::overridden_segment_replaces_width_bounds ... ok
[INFO] [stdout] test segments::layout_type_tests::overridden_segment_replaces_priority ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_all_control_input_collapses_to_empty ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_counts_cells_not_bytes_for_middle_dot ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_preserves_unicode_without_controls ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_strips_common_c0_controls ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_strips_csi_clear_screen_injection ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_strips_osc_set_title_with_bel_terminator ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_with_separator_also_strips_controls ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_with_separator_exposes_override ... ok
[INFO] [stdout] test segments::layout_type_tests::built_in_by_id_rejects_unknown ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_computes_width ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_empty_string_stays_empty ... ok
[INFO] [stdout] test segments::layout_type_tests::rendered_segment_strips_c1_controls_and_del ... ok
[INFO] [stdout] test segments::layout_type_tests::segment_defaults_default_priority_is_128 ... ok
[INFO] [stdout] test segments::layout_type_tests::segment_error_display_chains_source ... ok
[INFO] [stdout] test segments::builder::tests::plugin_receives_extra_keys_from_segments_table_as_ctx_config ... ok
[INFO] [stdout] test segments::layout_type_tests::segment_error_display_includes_message_only_without_source ... ok
[INFO] [stdout] test segments::layout_type_tests::segment_error_source_chain_is_walkable ... ok
[INFO] [stdout] test segments::layout_type_tests::shrink_to_fit_passthrough_reaches_inner_with_user_style_applied ... ok
[INFO] [stdout] test segments::layout_type_tests::style_override_preserves_inner_none_return ... ok
[INFO] [stdout] test segments::layout_type_tests::style_override_wholesale_replaces_inner_declared_style ... ok
[INFO] [stdout] test segments::layout_type_tests::width_bounds_rejects_inverted_range ... ok
[INFO] [stdout] test segments::layout_type_tests::with_priority_preserves_other_defaults ... ok
[INFO] [stdout] test segments::model::tests::compact_does_not_mutate_non_claude_code_display_names ... ok
[INFO] [stdout] test segments::layout_type_tests::separator_widths_match_expected ... ok
[INFO] [stdout] test segments::model::tests::compact_passes_through_when_no_parenthetical ... ok
[INFO] [stdout] test segments::model::tests::compact_picks_rightmost_paren_pair_with_multiple_parentheticals ... ok
[INFO] [stdout] test segments::model::tests::compact_preserves_parenthetical_not_ending_in_context ... ok
[INFO] [stdout] test segments::model::tests::compact_strips_context_word_from_parenthetical ... ok
[INFO] [stdout] test segments::layout_type_tests::shrink_to_fit_applies_separator_override_to_runtime_space ... ok
[INFO] [stdout] test segments::layout_type_tests::shrink_to_fit_passthrough_keeps_inner_style_when_no_user_override ... ok
[INFO] [stdout] test segments::layout_type_tests::shrink_to_fit_passthrough_returns_none_when_inner_declines ... ok
[INFO] [stdout] test segments::layout_type_tests::user_style_override_preserves_inner_hyperlink ... ok
[INFO] [stdout] test segments::model::tests::compact_handles_multi_word_qualifier ... ok
[INFO] [stdout] test segments::model::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::model::tests::from_extras_accepts_compact_value ... ok
[INFO] [stdout] test segments::model::tests::from_extras_accepts_full_value ... ok
[INFO] [stdout] test segments::model::tests::hidden_when_display_name_is_empty ... ok
[INFO] [stdout] test segments::model::tests::hidden_when_display_name_is_whitespace_only ... ok
[INFO] [stdout] test segments::model::tests::shorten_context_label_returns_none_for_bare_suffix ... ok
[INFO] [stdout] test segments::model::tests::from_extras_default_is_compact ... ok
[INFO] [stdout] test segments::model::tests::shorten_context_label_returns_none_for_no_suffix ... ok
[INFO] [stdout] test segments::model::tests::from_extras_warns_on_unknown_format_and_keeps_default ... ok
[INFO] [stdout] test segments::model::tests::from_extras_warns_on_non_string_format ... ok
[INFO] [stdout] test segments::model::tests::full_preserves_anthropics_verbatim_string ... ok
[INFO] [stdout] test segments::output_style::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::model::tests::shorten_context_label_returns_none_when_paren_has_no_leading_space ... ok
[INFO] [stdout] test segments::output_style::tests::hidden_when_absent ... ok
[INFO] [stdout] test segments::output_style::tests::renders_named_style ... ok
[INFO] [stdout] test segments::rate_limit::config::tests::parse_reset_format_unknown_hour_format_warns_and_uses_24h ... ok
[INFO] [stdout] test segments::rate_limit::config::tests::parse_reset_format_absolute_defaults_apply_when_knobs_missing ... ok
[INFO] [stdout] test segments::rate_limit::config::tests::parse_reset_format_duration_value_parses ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::declares_usage_as_its_only_data_dep ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::does_not_read_extra_usage_field ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::from_extras_applies_format_invert_and_common_knobs ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::from_extras_flips_progress_to_percent_on_invalid_width ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::from_extras_warns_on_bad_format_string ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::hidden_when_five_hour_bucket_absent ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::jsonl_mode_renders_compact_tokens_with_stale_marker ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::jsonl_mode_hides_when_no_active_block ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::jsonl_mode_ignores_invert_and_progress_knobs ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::progress_bar_at_one_hundred_is_entirely_filled_cells ... ok
[INFO] [stdout] test segments::rate_limit::config::tests::parse_reset_format_unsupported_locale_warns_and_uses_en_us ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::progress_bar_at_zero_is_entirely_empty_cells ... ok
[INFO] [stdout] test segments::rate_limit::config::tests::parse_reset_format_unknown_tz_warns_and_falls_back_to_system_local ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::renders_progress_bar_when_format_is_progress ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::renders_error_table_strings ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::renders_inverted_percent_when_configured ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::renders_percent_happy_path ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_compact_format_drops_suffix_spaces ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_from_extras_warns_on_percent_format_string ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_declares_usage_as_its_only_data_dep ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_from_extras_applies_duration_format_knobs ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_hidden_when_five_hour_bucket_absent ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_hidden_when_resets_at_missing ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_jsonl_mode_hides_when_block_inactive ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_invalid_progress_width_does_not_clobber_absolute_format ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_hidden_when_resets_at_in_past ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_jsonl_mode_derives_reset_from_five_hour_window_ends_at ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_jsonl_mode_hides_when_ends_at_in_past ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_progress_format_divides_by_five_hour_window_not_seven_day ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_renders_countdown_in_default_format ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_renders_error_when_usage_fails ... ok
[INFO] [stdout] test data_context::git::tests::upstream_reports_behind_only_when_remote_leads ... ok
[INFO] [stdout] test segments::rate_limit::config::tests::parse_reset_format_absolute_with_full_knobs ... ok
[INFO] [stdout] test segments::rate_limit::five_hour::tests::reset_absolute_format_renders_end_to_end_from_toml ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::currency_clamps_negative_to_zero ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::currency_defaults_to_dollar_when_unset ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::currency_uses_iso_code_prefix_for_non_usd ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::currency_uses_dollar_for_usd ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::duration_text_clamps_days_to_four_digits ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::duration_text_hours_and_minutes_compact ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::duration_text_hours_and_minutes_non_compact ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::duration_text_minutes_only ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::absolute_24h_renders_with_tz_abbreviation ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::duration_text_skips_days_when_use_days_false ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::absolute_renders_correct_zone_across_dst_transition ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::duration_text_round_hour_drops_minutes ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::absolute_12h_renders_with_am_pm ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::absolute_renders_in_explicit_zone_distinct_from_utc ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::absolute_12h_morning_strips_zero_pad ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::error_rendering_covers_spec_table ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::error_rendering_drops_label_when_empty ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::empty_label_drops_colon_separator ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::duration_text_sub_minute_renders_lt_1m ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::extra_currency_falls_back_to_percent_when_monthly_limit_missing ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::duration_text_uses_days_when_configured ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::extra_currency_renders_remaining_credits ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::format_reset_absolute_under_jsonl_keeps_stale_marker ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::format_tokens_drops_decimal_at_ten_k_and_above ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::format_tokens_handles_u64_max_without_panic ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::format_tokens_pins_unit_boundaries ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::format_reset_dispatches_absolute_branch ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::format_tokens_under_one_thousand_renders_integer ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::extra_returns_none_when_no_data_available ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::format_tokens_single_decimal_for_small_k_values ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::format_tokens_switches_to_megabytes_and_gigabytes ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::icon_renders_with_space_separator ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::jsonl_tokens_renders_megabytes_when_above_one_million ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::percent_format_inverts_when_configured ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::jsonl_tokens_compact_format_with_stale_marker ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::progress_bar_empty_at_zero ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::jsonl_tokens_empty_stale_marker_suppresses_prefix ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::progress_bar_full_at_100pct ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::percent_format_rounds_to_one_decimal_with_label ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::percent_format_progress_bar_at_50pct ... ok
[INFO] [stdout] test segments::rate_limit::format::tests::progress_bar_zero_width_collapses_to_percent ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::declares_usage_as_its_only_data_dep ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::from_extras_applies_percent_format_knobs ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::hidden_when_seven_day_bucket_absent ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::jsonl_mode_renders_compact_tokens_with_stale_marker ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::jsonl_mode_still_renders_on_zero_tokens ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::renders_error_when_usage_fails ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::renders_inverted_percent_when_configured ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_declares_usage_as_its_only_data_dep ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::renders_percent_happy_path ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_from_extras_warns_on_percent_format_string ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_from_extras_applies_duration_format_knobs ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_hidden_under_jsonl_fallback ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_hidden_when_resets_at_in_past ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_hidden_when_resets_at_missing ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_hidden_when_seven_day_bucket_absent ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_invalid_progress_width_does_not_clobber_absolute_format ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_progress_format_divides_by_seven_day_window_not_five_hour ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_renders_countdown_with_days_by_default ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_renders_error_when_usage_fails ... ok
[INFO] [stdout] test segments::rate_limit::window::tests::seven_day_reset_returns_err_under_jsonl ... ok
[INFO] [stdout] test segments::rate_limit::window::tests::seven_day_reset_returns_err_when_endpoint_bucket_absent ... ok
[INFO] [stdout] test segments::session_duration::tests::hidden_when_cost_absent ... ok
[INFO] [stdout] test segments::rate_limit::seven_day::tests::reset_use_days_false_emits_hours_only ... ok
[INFO] [stdout] test segments::session_duration::tests::renders_exact_hour_without_trailing_zero_minutes ... ok
[INFO] [stdout] test segments::session_duration::tests::renders_hour_with_seconds_only_drops_them ... ok
[INFO] [stdout] test segments::session_duration::tests::renders_hours_and_minutes_drops_seconds ... ok
[INFO] [stdout] test segments::session_duration::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::session_duration::tests::renders_exact_minute_without_trailing_zero_seconds ... ok
[INFO] [stdout] test segments::session_duration::tests::renders_long_sessions_at_hour_resolution ... ok
[INFO] [stdout] test segments::session_duration::tests::renders_just_below_an_hour ... ok
[INFO] [stdout] test segments::session_duration::tests::renders_minutes_and_seconds ... ok
[INFO] [stdout] test segments::session_duration::tests::renders_sub_minute_as_seconds_only ... ok
[INFO] [stdout] test segments::session_duration::tests::renders_with_muted_role ... ok
[INFO] [stdout] test segments::session_duration::tests::sub_second_durations_floor_to_zero_seconds ... ok
[INFO] [stdout] test segments::tokens::tests::all_four_segments_share_priority ... ok
[INFO] [stdout] test segments::session_duration::tests::renders_zero_seconds ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_cached_hidden_when_context_window_absent ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_cached_hidden_when_current_usage_absent ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_cached_renders_zero_when_both_fields_zero ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_input_hidden_when_context_window_absent ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_cached_sums_cache_creation_and_read_with_muted_role ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_input_hidden_when_current_usage_absent ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_input_renders_current_usage_input_with_muted_role ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_output_hidden_when_context_window_absent ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_output_hidden_when_current_usage_absent ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_total_hidden_when_context_window_absent ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_output_renders_current_usage_output_with_muted_role ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_total_hidden_when_current_usage_absent ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_total_saturates_on_overflow ... ok
[INFO] [stdout] test segments::tokens::tests::tokens_total_sums_all_four_fields ... ok
[INFO] [stdout] test segments::version::tests::custom_prefix_passes_through ... ok
[INFO] [stdout] test segments::version::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::version::tests::hidden_when_absent ... ok
[INFO] [stdout] test segments::version::tests::from_extras_warns_on_non_string_prefix_and_keeps_default ... ok
[INFO] [stdout] test segments::vim::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::vim::tests::hidden_when_absent ... ok
[INFO] [stdout] test segments::version::tests::empty_prefix_emits_raw_version ... ok
[INFO] [stdout] test segments::vim::tests::renders_each_mode ... ok
[INFO] [stdout] test segments::workspace::tests::declares_git_data_dep ... ok
[INFO] [stdout] test segments::workspace::tests::hidden_when_project_dir_has_no_basename ... ok
[INFO] [stdout] test segments::workspace::tests::defaults_use_expected_priority ... ok
[INFO] [stdout] test segments::workspace::tests::hostile_project_dir_basename_is_stripped_of_control_chars ... ok
[INFO] [stdout] test segments::workspace::tests::renders_basename_in_main_checkout ... ok
[INFO] [stderr] linesmith: parse: invalid JSON at 1:2: key must be a string at line 1 column 2
[INFO] [stdout] test segments::version::tests::renders_with_default_v_prefix ... ok
[INFO] [stdout] test segments::workspace::tests::renders_basename_in_submodule ... ok
[INFO] [stdout] test segments::workspace::tests::hostile_worktree_name_is_stripped_of_control_chars ... ok
[INFO] [stdout] test segments::workspace::tests::renders_basename_in_bare_repo ... ok
[INFO] [stdout] test segments::workspace::tests::renders_basename_on_gix_walk_failed ... ok
[INFO] [stdout] test segments::workspace::tests::renders_directory_outside_repo ... ok
[INFO] [stdout] test segments::workspace::tests::renders_hybrid_inside_linked_worktree ... ok
[INFO] [stdout] test segments::workspace::tests::renders_worktree_name_containing_slash_verbatim ... ok
[INFO] [stdout] test segments::workspace::tests::renders_basename_on_gix_corrupt_repo ... ok
[INFO] [stdout] test tests::columns_env_used_when_os_width_missing ... ok
[INFO] [stdout] test tests::columns_beyond_u16_range_warns ... ok
[INFO] [stdout] test tests::missing_columns_falls_back_silently ... ok
[INFO] [stdout] test tests::os_width_wins_over_columns_env ... ok
[INFO] [stdout] test tests::full_payload_renders_model_context_workspace ... ok
[INFO] [stdout] test tests::malformed_json_renders_marker_and_succeeds ... ok
[INFO] [stdout] test tests::unparseable_columns_falls_back_and_warns ... ok
[INFO] [stdout] test theme::catppuccin::tests::all_four_flavors_registered ... ok
[INFO] [stdout] test tests::minimal_payload_renders_model_then_workspace ... ok
[INFO] [stdout] test tests::zero_columns_falls_back_and_warns ... ok
[INFO] [stdout] test theme::catppuccin::tests::builtin_names_lists_all_four_catppuccin_flavors ... ok
[INFO] [stdout] test theme::catppuccin::tests::every_flavor_maps_every_base_role ... ok
[INFO] [stdout] test theme::catppuccin::tests::every_flavor_maps_primary_to_its_canonical_mauve ... ok
[INFO] [stdout] test theme::catppuccin::tests::extended_dim_roles_fall_through_to_base_roles ... ok
[INFO] [stdout] test theme::catppuccin::tests::latte_light_theme_maps_foreground_to_dark_text ... ok
[INFO] [stdout] test theme::catppuccin::tests::mocha_dark_theme_maps_foreground_to_light_text ... ok
[INFO] [stdout] test theme::dracula::tests::extended_dim_roles_fall_through_to_base ... ok
[INFO] [stdout] test theme::dracula::tests::primary_maps_to_canonical_pink ... ok
[INFO] [stdout] test theme::dracula::tests::registered_in_builtin_registry ... ok
[INFO] [stdout] test theme::dracula::tests::truecolor_downgrades_to_palette16_without_panicking ... ok
[INFO] [stdout] test theme::gruvbox::tests::dark_theme_foreground_is_light ... ok
[INFO] [stdout] test theme::gruvbox::tests::primary_maps_to_canonical_bright_purple ... ok
[INFO] [stdout] test theme::gruvbox::tests::extended_dim_roles_fall_through_to_base ... ok
[INFO] [stdout] test theme::gruvbox::tests::truecolor_downgrades_to_palette16_without_panicking ... ok
[INFO] [stdout] test theme::nord::tests::dark_theme_foreground_is_light ... ok
[INFO] [stdout] test theme::nord::tests::extended_dim_roles_fall_through_to_base ... ok
[INFO] [stdout] test theme::gruvbox::tests::registered_in_builtin_registry ... ok
[INFO] [stdout] test theme::catppuccin::tests::mocha_downgrades_truecolor_to_palette16_without_panicking ... ok
[INFO] [stdout] test theme::rose_pine::tests::dark_theme_foreground_is_light ... ok
[INFO] [stdout] test theme::nord::tests::primary_maps_to_canonical_nord8 ... ok
[INFO] [stdout] test theme::nord::tests::registered_in_builtin_registry ... ok
[INFO] [stdout] test theme::nord::tests::truecolor_downgrades_to_palette16_without_panicking ... ok
[INFO] [stdout] test theme::rose_pine::tests::extended_dim_roles_fall_through_to_base ... ok
[INFO] [stdout] test theme::rose_pine::tests::primary_maps_to_canonical_iris ... ok
[INFO] [stdout] test theme::style_syntax::tests::case_insensitive_tokens ... ok
[INFO] [stdout] test theme::rose_pine::tests::registered_in_builtin_registry ... ok
[INFO] [stdout] test theme::rose_pine::tests::success_and_info_both_map_to_foam ... ok
[INFO] [stdout] test theme::rose_pine::tests::truecolor_downgrades_to_palette16_without_panicking ... ok
[INFO] [stdout] test theme::style_syntax::tests::all_four_decorations_compose ... ok
[INFO] [stdout] test theme::style_syntax::tests::bare_close_paren_errors ... ok
[INFO] [stdout] test theme::style_syntax::tests::duplicate_decoration_token_is_idempotent ... ok
[INFO] [stdout] test theme::style_syntax::tests::duplicate_fg_token_last_wins ... ok
[INFO] [stdout] test theme::style_syntax::tests::duplicate_role_token_last_wins ... ok
[INFO] [stdout] test theme::style_syntax::tests::error_display_quotes_offending_input ... ok
[INFO] [stdout] test theme::style_syntax::tests::empty_string_yields_default_style ... ok
[INFO] [stdout] test theme::style_syntax::tests::extended_role_with_underscore_and_hyphen_both_work ... ok
[INFO] [stdout] test theme::style_syntax::tests::fg_hex_and_decoration ... ok
[INFO] [stdout] test theme::style_syntax::tests::fg_named_color ... ok
[INFO] [stdout] test theme::style_syntax::tests::fg_rgb_function ... ok
[INFO] [stdout] test theme::style_syntax::tests::malformed_fg_directive_errors ... ok
[INFO] [stdout] test theme::style_syntax::tests::fg_rgb_with_spaces_inside_parens_is_one_token ... ok
[INFO] [stdout] test theme::style_syntax::tests::malformed_role_directive_errors ... ok
[INFO] [stdout] test theme::style_syntax::tests::nested_parens_are_one_token ... ok
[INFO] [stdout] test theme::style_syntax::tests::mixed_case_directive_prefix_parses ... ok
[INFO] [stdout] test theme::style_syntax::tests::parser_populates_both_fg_and_role_when_both_specified ... ok
[INFO] [stdout] test theme::style_syntax::tests::order_does_not_matter ... ok
[INFO] [stdout] test theme::style_syntax::tests::invalid_fg_errors_with_input ... ok
[INFO] [stdout] test theme::style_syntax::tests::role_plus_decorations_combine ... ok
[INFO] [stdout] test theme::style_syntax::tests::role_directive_sets_role ... ok
[INFO] [stdout] test theme::style_syntax::tests::stray_close_paren_errors_before_reaching_parse_color ... ok
[INFO] [stdout] test theme::style_syntax::tests::unclosed_paren_errors ... ok
[INFO] [stdout] test theme::style_syntax::tests::unknown_role_errors_with_input ... ok
[INFO] [stdout] test theme::dracula::tests::dark_theme_foreground_is_light ... ok
[INFO] [stdout] test theme::style_syntax::tests::whitespace_only_yields_default_style ... ok
[INFO] [stdout] test theme::tests::base_roles_fall_back_to_themselves ... ok
[INFO] [stdout] test theme::tests::builtin_names_lists_all_curated_presets ... ok
[INFO] [stdout] test theme::tests::builtin_names_lists_default_and_minimal ... ok
[INFO] [stdout] test theme::tests::default_theme_always_available ... ok
[INFO] [stdout] test theme::tests::default_theme_extended_roles_fall_back_to_base ... ok
[INFO] [stdout] test theme::tests::downgrade_palette256_cube_to_16_picks_a_color ... ok
[INFO] [stdout] test theme::tests::downgrade_palette256_low_16_passes_through_identity ... ok
[INFO] [stdout] test theme::tests::downgrade_preserves_matching_or_richer_capability ... ok
[INFO] [stdout] test theme::tests::downgrade_strips_color_under_no_capability ... ok
[INFO] [stdout] test theme::tests::default_theme_maps_every_base_role ... ok
[INFO] [stdout] test theme::tests::downgrade_truecolor_red_to_16_picks_red_family ... ok
[INFO] [stdout] test theme::tests::downgrade_truecolor_to_256_grayscale_uses_gray_ramp ... ok
[INFO] [stdout] test theme::tests::downgrade_palette256_grayscale_routes_to_blacks_or_whites ... ok
[INFO] [stdout] test theme::tests::every_curated_preset_maps_every_base_role ... ok
[INFO] [stdout] test theme::tests::downgrade_truecolor_to_256_uses_cube_for_color ... ok
[INFO] [stdout] test theme::tests::downgrade_truecolor_near_white_grayscale_saturates_without_overflow ... ok
[INFO] [stdout] test theme::tests::extended_role_fallbacks_match_spec_table ... ok
[INFO] [stdout] test theme::tests::force_from_floor_overrides_dumb_term_when_env_probe_returns_none ... ok
[INFO] [stdout] test theme::tests::force_from_floors_at_palette16_when_both_inputs_are_none ... ok
[INFO] [stdout] test theme::tests::force_from_picks_max_of_both_inputs ... ok
[INFO] [stdout] test theme::tests::force_from_truecolor_from_either_side_wins ... ok
[INFO] [stdout] test theme::tests::from_env_vars_colorterm_garbage_falls_through_to_term ... ok
[INFO] [stdout] test theme::tests::from_env_vars_colorterm_truecolor_overrides_term_dumb ... ok
[INFO] [stdout] test theme::tests::from_env_vars_dumb_or_missing_term_is_none ... ok
[INFO] [stdout] test theme::tests::from_env_vars_prefers_colorterm_truecolor ... ok
[INFO] [stdout] test theme::tests::from_env_vars_unknown_term_is_palette16 ... ok
[INFO] [stdout] test theme::tests::minimal_theme_returns_no_color_for_every_role ... ok
[INFO] [stdout] test theme::tests::minimal_theme_emits_only_decorations ... ok
[INFO] [stdout] test theme::tests::sgr_open_combines_decorations_and_color ... ok
[INFO] [stdout] test theme::tests::from_env_vars_falls_back_to_term_256color ... ok
[INFO] [stdout] test theme::tests::role_count_matches_enum_discriminant_range ... ok
[INFO] [stdout] test theme::tests::sgr_open_dim_only_emits_sgr2 ... ok
[INFO] [stdout] test theme::tests::sgr_open_bold_only_emits_sgr1 ... ok
[INFO] [stdout] test theme::tests::sgr_open_plain_style_emits_nothing ... ok
[INFO] [stdout] test theme::tests::sgr_open_role_under_no_capability_drops_color_keeps_decoration ... ok
[INFO] [stdout] test theme::tests::sgr_open_role_under_palette16_emits_ansi_code ... ok
[INFO] [stdout] test theme::tests::sgr_open_explicit_fg_wins_over_role ... ok
[INFO] [stdout] test theme::tests::sgr_open_truecolor_fg_emits_38_2_sequence ... ok
[INFO] [stdout] test theme::tests::sgr_open_full_decoration_stack_keeps_order ... ok
[INFO] [stdout] test theme::tests::sgr_open_underline_only_emits_sgr4 ... ok
[INFO] [stdout] test theme::tests::sgr_reset_is_stable_and_short ... ok
[INFO] [stdout] test theme::tokyo_night::tests::primary_maps_to_canonical_magenta ... ok
[INFO] [stdout] test theme::style_syntax::tests::unknown_token_errors ... ok
[INFO] [stdout] test theme::tokyo_night::tests::registered_in_builtin_registry ... ok
[INFO] [stdout] test theme::tokyo_night::tests::dark_theme_foreground_is_light ... ok
[INFO] [stdout] test theme::tests::unknown_theme_name_returns_none ... ok
[INFO] [stdout] test theme::tokyo_night::tests::extended_dim_roles_fall_through_to_base ... ok
[INFO] [stdout] test theme::user::tests::parse_hex_case_insensitive ... ok
[INFO] [stdout] test theme::tokyo_night::tests::truecolor_downgrades_to_palette16_without_panicking ... ok
[INFO] [stdout] test theme::user::tests::parse_hex_3_digit_expands ... ok
[INFO] [stdout] test theme::user::tests::parse_hex_6_digit ... ok
[INFO] [stdout] test theme::user::tests::parse_hex_rejects_bad_length ... ok
[INFO] [stdout] test theme::user::tests::parse_hex_rejects_non_hex_chars ... ok
[INFO] [stdout] test theme::user::tests::parse_none_and_empty_yield_no_color ... ok
[INFO] [stdout] test theme::user::tests::parse_named_canonical_forms ... ok
[INFO] [stdout] test theme::user::tests::registry_missing_user_dir_is_silent ... ok
[INFO] [stdout] test theme::user::tests::parse_rgb_function_form ... ok
[INFO] [stdout] test theme::user::tests::registry_ignores_non_toml_files ... ok
[INFO] [stdout] test theme::user::tests::registry_skips_bad_files_with_diagnostic ... ok
[INFO] [stdout] test theme::user::tests::parse_rgb_rejects_out_of_range_channels ... ok
[INFO] [stdout] test theme::user::tests::parse_unknown_named_color_errors ... ok
[INFO] [stdout] test theme::user::tests::registry_iter_yields_built_ins_first_then_user ... ok
[INFO] [stdout] test theme::user::tests::registry_with_built_ins_contains_every_compiled_theme ... ok
[INFO] [stdout] test theme::user::tests::theme_file_missing_required_role_fails_to_deserialize ... ok
[INFO] [stdout] test theme::user::tests::registry_user_theme_overrides_built_in_with_warning ... ok
[INFO] [stdout] test theme::user::tests::theme_file_invalid_color_value_surfaces_role_label ... ok
[INFO] [stdout] test theme::user::tests::theme_file_parses_minimum_required_sections ... ok
[INFO] [stdout] test theme::user::tests::spec_metadata_keys_parse_silently ... ok
[INFO] [stdout] test theme::user::tests::unknown_role_in_theme_file_warns_with_path ... ok
[INFO] [stdout] test theme::user::tests::unknown_key_in_roles_extended_warns ... ok
[INFO] [stdout] test theme::user::tests::user_theme_renders_through_downgrade_without_panicking ... ok
[INFO] [stdout] test theme::user::tests::theme_file_extended_roles_populate_when_present ... ok
[INFO] [stdout] test theme::user::tests::unknown_top_level_key_in_theme_file_warns ... ok
[INFO] [stdout] test theme::user::tests::registry_user_vs_user_collision_first_file_wins ... ok
[INFO] [stdout] test plugins::output::tests::all_16_roles_parse_via_snake_case_token ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- data_context::cache::tests::cache_read_surfaces_permission_denied stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'data_context::cache::tests::cache_read_surfaces_permission_denied' (520) panicked at crates/linesmith-core/src/data_context/cache.rs:765:14:
[INFO] [stdout] called `Result::unwrap_err()` on an `Ok` value: None
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6182571448ea - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6182571448ea - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6182571448ea - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6182571448ea - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6182571607da - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6182571607da - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x61825714b212 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x61825714b212 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x61825711e0cf - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x61825711e0cf - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x61825713aca9 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x61825632b21c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x61825632b21c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x61825713af22 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x61825713af22 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x61825711e188 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x618257112f09 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x61825711f2fd - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x61825716104c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x618257160d92 - core[4a92201981c6b77a]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x618255c0c07a - <core[4a92201981c6b77a]::result::Result<core[4a92201981c6b77a]::option::Option<linesmith_core[7c8020c20d9b64d5]::data_context::cache::CachedUsage>, linesmith_core[7c8020c20d9b64d5]::data_context::cache::CacheError>>::unwrap_err
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/result.rs:1329:22
[INFO] [stdout]   21:     0x618255ac193c - linesmith_core[7c8020c20d9b64d5]::data_context::cache::tests::cache_read_surfaces_permission_denied
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/linesmith-core/src/data_context/cache.rs:765:14
[INFO] [stdout]   22:     0x618255ab4da7 - linesmith_core[7c8020c20d9b64d5]::data_context::cache::tests::cache_read_surfaces_permission_denied::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/linesmith-core/src/data_context/cache.rs:757:47
[INFO] [stdout]   23:     0x618255e43f06 - <linesmith_core[7c8020c20d9b64d5]::data_context::cache::tests::cache_read_surfaces_permission_denied::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x61825631e4fb - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x61825631e4fb - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x61825632bceb - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x61825632bceb - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x61825632bceb - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x61825632bceb - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x61825632bceb - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x61825632bceb - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x61825632bceb - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x618256325404 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x618256325404 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x61825632e8f2 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x61825632e8f2 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x61825632e8f2 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x61825632e8f2 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x61825632e8f2 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x61825632e8f2 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x61825632e8f2 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x6182571435cf - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x6182571435cf - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x75d98f276aa4 - <unknown>
[INFO] [stdout]   45:     0x75d98f303a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     data_context::cache::tests::cache_read_surfaces_permission_denied
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1046 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.86s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p linesmith-core --lib`
[INFO] running `Command { std: "docker" "inspect" "4cded2c781aac574cc7a123718946ead84cf53ed5f4e6b5d5caef140969dffc4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4cded2c781aac574cc7a123718946ead84cf53ed5f4e6b5d5caef140969dffc4", kill_on_drop: false }`
[INFO] [stdout] 4cded2c781aac574cc7a123718946ead84cf53ed5f4e6b5d5caef140969dffc4
